/linux-master/arch/s390/include/asm/ |
H A D | pgtable.h | 72 pr_err("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e)) 548 static inline pmd_t clear_pmd_bit(pmd_t pmd, pgprot_t prot) argument 550 return __pmd(pmd_val(pmd) & ~pgprot_val(prot)); 553 static inline pmd_t set_pmd_bit(pmd_t pmd, pgprot_t prot) argument 555 return __pmd(pmd_val(pmd) | pgprot_val(prot)); 626 * pgd/p4d/pud/pmd/pte query functions 717 static inline bool pmd_leaf(pmd_t pmd) argument 719 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0; 722 static inline int pmd_bad(pmd_t pmd) argument 724 if ((pmd_val(pmd) 751 pmd_present(pmd_t pmd) argument 756 pmd_none(pmd_t pmd) argument 762 pmd_write(pmd_t pmd) argument 774 pmd_dirty(pmd_t pmd) argument 780 pmd_young(pmd_t pmd) argument 821 pmd_protnone(pmd_t pmd) argument 861 pmd_soft_dirty(pmd_t pmd) argument 866 pmd_mksoft_dirty(pmd_t pmd) argument 871 pmd_clear_soft_dirty(pmd_t pmd) argument 939 set_pmd(pmd_t *pmdp, pmd_t pmd) argument 1383 pmd_deref(pmd_t pmd) argument 1393 pmd_pfn(pmd_t pmd) argument 1479 pmd_page_vaddr(pmd_t pmd) argument 1499 pmd_wrprotect(pmd_t pmd) argument 1505 pmd_mkwrite_novma(pmd_t pmd) argument 1513 pmd_mkclean(pmd_t pmd) argument 1519 pmd_mkdirty(pmd_t pmd) argument 1573 pmd_mkyoung(pmd_t pmd) argument 1581 pmd_mkold(pmd_t pmd) argument 1587 pmd_modify(pmd_t pmd, pgprot_t newprot) argument 1711 pmd_t pmd = *pmdp; local 1733 pmd_mkhuge(pmd_t pmd) argument 1753 pmd_t pmd = *pmdp; local 1771 pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID); local 1780 pmd_t pmd = *pmdp; local 1797 pmd_trans_huge(pmd_t pmd) argument [all...] |
H A D | pgalloc.h | 95 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) argument 99 pagetable_pmd_dtor(virt_to_ptdesc(pmd)); 100 crst_table_free(mm, (unsigned long *) pmd); 113 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument 115 set_pud(pud, __pud(_REGION3_ENTRY | __pa(pmd))); 129 pmd_t *pmd, pgtable_t pte) 131 set_pmd(pmd, __pmd(_SEGMENT_ENTRY | __pa(pte))); 134 #define pmd_populate_kernel(mm, pmd, pte) pmd_populate(mm, pmd, pte) 128 pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) argument
|
/linux-master/arch/xtensa/include/asm/ |
H A D | pgtable.h | 226 * The pmd contains the kernel virtual address of the pte page. 228 #define pmd_page_vaddr(pmd) ((unsigned long)(pmd_val(pmd) & PAGE_MASK)) 229 #define pmd_pfn(pmd) (__pa(pmd_val(pmd)) >> PAGE_SHIFT) 230 #define pmd_page(pmd) virt_to_page(pmd_val(pmd)) 246 #define pmd_none(pmd) (!pmd_val(pmd)) 247 #define pmd_present(pmd) (pmd_va [all...] |
/linux-master/arch/parisc/mm/ |
H A D | hugetlbpage.c | 53 pmd_t *pmd; local 67 pmd = pmd_alloc(mm, pud, addr); 68 if (pmd) 69 pte = pte_alloc_huge(mm, pmd, addr); 80 pmd_t *pmd; local 91 pmd = pmd_offset(pud, addr); 92 if (!pmd_none(*pmd)) 93 pte = pte_offset_huge(pmd, addr); 185 int pmd_huge(pmd_t pmd) argument
|
H A D | fixmap.c | 19 pmd_t *pmd = pmd_offset(pud, vaddr); local 22 pte = pte_offset_kernel(pmd, vaddr);
|
/linux-master/arch/loongarch/mm/ |
H A D | init.c | 130 void __meminit vmemmap_set_pmd(pmd_t *pmd, void *p, int node, argument 137 set_pmd_at(&init_mm, addr, pmd, entry); 140 int __meminit vmemmap_check_pmd(pmd_t *pmd, int node, argument 143 int huge = pmd_val(*pmd) & _PAGE_HUGE; 146 vmemmap_verify((pte_t *)pmd, node, addr, next); 173 pmd_t *pmd; local 187 pmd = memblock_alloc(PAGE_SIZE, PAGE_SIZE); 188 if (!pmd) 190 pud_populate(&init_mm, pud, pmd); 192 pmd_init(pmd); [all...] |
/linux-master/arch/x86/mm/ |
H A D | init_64.c | 75 DEFINE_POPULATE(pud_populate, pud, pmd, init) 76 DEFINE_POPULATE(pmd_populate_kernel, pmd, pte, init) 90 DEFINE_ENTRY(pmd, pmd, init) 276 pmd_t *pmd = (pmd_t *) spp_getpage(); local 277 pud_populate(&init_mm, pud, pmd); 278 if (pmd != pmd_offset(pud, 0)) 280 pmd, pmd_offset(pud, 0)); 285 static pte_t *fill_pte(pmd_t *pmd, unsigned long vaddr) argument 287 if (pmd_none(*pmd)) { 298 pmd_t *pmd = fill_pmd(pud, vaddr); local 357 pmd_t *pmd; local 372 pmd_t *pmd; local 431 pmd_t *pmd = level2_kernel_pgt; local 517 pmd_t *pmd = pmd_page + pmd_index(paddr); local 602 pmd_t *pmd; local 1005 free_pte_table(pte_t *pte_start, pmd_t *pmd) argument 1025 pmd_t *pmd; local 1108 pmd_t *pmd; local 1493 vmemmap_set_pmd(pmd_t *pmd, void *p, int node, unsigned long addr, unsigned long next) argument 1520 vmemmap_check_pmd(pmd_t *pmd, int node, unsigned long addr, unsigned long next) argument 1566 pmd_t *pmd; local [all...] |
H A D | init_32.c | 95 static pte_t * __init one_page_table_init(pmd_t *pmd) argument 97 if (!(pmd_val(*pmd) & _PAGE_PRESENT)) { 100 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE)); 101 BUG_ON(page_table != pte_offset_kernel(pmd, 0)); 104 return pte_offset_kernel(pmd, 0); 118 pmd_t *pmd; local 120 pmd = populate_extra_pmd(vaddr); 121 return one_page_table_init(pmd) + pte_idx; 155 static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd, argument 181 set_pmd(pmd, __pm 209 pmd_t *pmd; local 261 pmd_t *pmd; local 441 pmd_t *pmd; local [all...] |
H A D | pgtable_32.c | 32 pmd_t *pmd; local 50 pmd = pmd_offset(pud, vaddr); 51 if (pmd_none(*pmd)) { 55 pte = pte_offset_kernel(pmd, vaddr);
|
H A D | pti.c | 247 pmd_t *pmd; local 250 pmd = pti_user_pagetable_walk_pmd(address); 251 if (!pmd) 255 if (pmd_leaf(*pmd)) { 260 if (pmd_none(*pmd)) { 265 set_pmd(pmd, __pmd(_KERNPG_TABLE | __pa(new_pte_page))); 268 pte = pte_offset_kernel(pmd, address); 314 pmd_t *pmd, *target_pmd; local 337 pmd = pmd_offset(pud, addr); 338 if (pmd_none(*pmd)) { [all...] |
/linux-master/arch/sparc/include/asm/ |
H A D | pgtable_32.h | 109 static inline unsigned long pmd_pfn(pmd_t pmd) argument 111 return (pmd_val(pmd) & SRMMU_PTD_PMASK) >> (PAGE_SHIFT-4); 114 static inline struct page *pmd_page(pmd_t pmd) argument 116 if (srmmu_device_memory(pmd_val(pmd))) 118 return pfn_to_page(pmd_pfn(pmd)); 121 static inline unsigned long __pmd_page(pmd_t pmd) argument 125 if (srmmu_device_memory(pmd_val(pmd))) 128 v = pmd_val(pmd) & SRMMU_PTD_PMASK; 132 static inline unsigned long pmd_page_vaddr(pmd_t pmd) argument 134 unsigned long v = pmd_val(pmd) 168 pmd_bad(pmd_t pmd) argument 173 pmd_present(pmd_t pmd) argument 178 pmd_none(pmd_t pmd) argument [all...] |
H A D | pgalloc_64.h | 36 static inline void __pud_populate(pud_t *pud, pmd_t *pmd) argument 38 pud_set(pud, pmd); 58 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) argument 60 kmem_cache_free(pgtable_cache, pmd); 112 #define __pmd_free_tlb(tlb, pmd, addr) \ 113 pgtable_free_tlb(tlb, pmd, false)
|
/linux-master/arch/powerpc/mm/ |
H A D | pgtable_64.c | 123 * For hugepage we have pfn in the pmd, we use PTE_RPN_SHIFT bits for flags 126 struct page *pmd_page(pmd_t pmd) argument 128 if (pmd_leaf(pmd)) { 135 VM_WARN_ON(!(pmd_leaf(pmd) || pmd_huge(pmd))); 136 return pte_page(pmd_pte(pmd)); 138 return virt_to_page(pmd_page_vaddr(pmd));
|
H A D | pgtable.c | 303 pmd_t *pmd = pmd_off(mm, addr); local 318 num = number_of_cells_per_pte(pmd, val, 1); 332 pmd_t *pmd; local 344 pmd = pmd_offset(pud, addr); 347 * pmd to none to force page fault/gup to take mmap_lock. After 348 * pmd is set to none, we do a pte_clear which does this assertion 349 * so if we find pmd none, return. 351 if (pmd_none(*pmd)) 353 pte = pte_offset_map_nolock(mm, pmd, addr, &ptl); 387 pmd_t pmd, *pmd local [all...] |
/linux-master/mm/ |
H A D | pgtable-generic.c | 48 * Note that the pmd variant below can't be stub'ed out just as for p4d/pud 49 * above. pmd folding is special and typically pmd_* macros refer to upper 52 void pmd_clear_bad(pmd_t *pmd) argument 54 pmd_ERROR(*pmd); 55 pmd_clear(pmd); 140 pmd_t pmd; local 144 pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); 146 return pmd; 220 * pmd and hugepage pte format are same. So we could 223 pmd_t pmd; local 280 __pte_offset_map(pmd_t *pmd, unsigned long addr, pmd_t *pmdvalp) argument 306 pte_offset_map_nolock(struct mm_struct *mm, pmd_t *pmd, unsigned long addr, spinlock_t **ptlp) argument 362 __pte_offset_map_lock(struct mm_struct *mm, pmd_t *pmd, unsigned long addr, spinlock_t **ptlp) argument [all...] |
/linux-master/arch/m68k/include/asm/ |
H A D | motorola_pgtable.h | 82 #define pmd_pgtable(pmd) ((pgtable_t)pmd_page_vaddr(pmd)) 107 #define pmd_page_vaddr(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK)) 120 #define pmd_none(pmd) (!pmd_val(pmd)) 121 #define pmd_bad(pmd) ((pmd_val(pmd) & _DESCTYPE_MASK) != _PAGE_TABLE) 122 #define pmd_present(pmd) (pmd_val(pmd) [all...] |
H A D | page.h | 21 typedef struct { unsigned long pmd; } pmd_t; member in struct:__anon18 22 #define pmd_val(x) ((&x)->pmd)
|
/linux-master/arch/x86/kernel/ |
H A D | head64.c | 94 static unsigned long __head sme_postprocess_startup(struct boot_params *bp, pmdval_t *pmd) argument 126 pmd[i] -= sme_get_me_mask(); 152 pmdval_t *pmd, pmd_entry; local 192 RIP_REL_REF(level2_fixmap_pgt)[i].pmd += load_delta; 201 pud = &early_pgts[0]->pmd; 202 pmd = &early_pgts[1]->pmd; 208 p4d = &early_pgts[RIP_REL_REF(next_early_pgt)++]->pmd; 224 pud[(i + 0) % PTRS_PER_PUD] = (pudval_t)pmd + pgtable_flags; 225 pud[(i + 1) % PTRS_PER_PUD] = (pudval_t)pmd 282 __early_make_pgtable(unsigned long address, pmdval_t pmd) argument 355 pmdval_t pmd; local [all...] |
/linux-master/arch/arm/include/asm/ |
H A D | pgtable-2level-types.h | 22 typedef struct { pmdval_t pmd; } pmd_t; member in struct:__anon43 27 #define pmd_val(x) ((x).pmd)
|
/linux-master/arch/arm/mm/ |
H A D | pgd.c | 147 pmd_t *pmd; local 165 pmd = pmd_offset(pud, 0); 166 if (pmd_none_or_clear_bad(pmd)) 169 pte = pmd_pgtable(*pmd); 170 pmd_clear(pmd); 175 pmd_free(mm, pmd); 186 * Free modules/pkmap or identity pmd tables. 199 pmd = pmd_offset(pud, 0); 201 pmd_free(mm, pmd);
|
/linux-master/mm/damon/ |
H A D | ops-common.h | 13 void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr);
|
/linux-master/arch/riscv/include/asm/ |
H A D | pgalloc.h | 19 pmd_t *pmd, pte_t *pte) 23 set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); 27 pmd_t *pmd, pgtable_t pte) 31 set_pmd(pmd, __pmd((pfn << _PAGE_PFN_SHIFT) | _PAGE_TABLE)); 35 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) argument 37 unsigned long pfn = virt_to_pfn(pmd); 173 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, argument 176 struct ptdesc *ptdesc = virt_to_ptdesc(pmd); 18 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) argument 26 pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) argument
|
/linux-master/include/linux/ |
H A D | huge_mm.h | 29 pmd_t *pmd, unsigned long addr, unsigned long next); 30 int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, pmd_t *pmd, 37 pmd_t *pmd, unsigned long addr, pgprot_t newprot, 276 void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, 310 spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma); 313 static inline int is_swap_pmd(pmd_t pmd) argument 315 return !pmd_none(pmd) && !pmd_present(pmd); 319 static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd, argument 322 if (is_swap_pmd(*pmd) || pmd_trans_hug 360 is_huge_zero_pmd(pmd_t pmd) argument 439 __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, unsigned long address, bool freeze, struct folio *folio) argument 466 is_swap_pmd(pmd_t pmd) argument 470 pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma) argument 491 is_huge_zero_pmd(pmd_t pmd) argument 506 follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap) argument [all...] |
H A D | swapops.h | 335 extern void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, 359 static inline void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, argument 537 extern void pmd_migration_entry_wait(struct mm_struct *mm, pmd_t *pmd); 539 static inline swp_entry_t pmd_to_swp_entry(pmd_t pmd) 543 if (pmd_swp_soft_dirty(pmd)) 544 pmd = pmd_swp_clear_soft_dirty(pmd); 545 if (pmd_swp_uffd_wp(pmd)) 546 pmd = pmd_swp_clear_uffd_wp(pmd); [all...] |
/linux-master/arch/powerpc/mm/book3s64/ |
H A D | radix_pgtable.c | 63 * When allocating pud or pmd pointers, we allocate a complete page 628 static void free_pte_table(pte_t *pte_start, pmd_t *pmd) argument 640 pmd_clear(pmd); 645 pmd_t *pmd; local 649 pmd = pmd_start + i; 650 if (!pmd_none(*pmd)) 761 pmd_t *pmd; local 763 pmd = pmd_start + pmd_index(addr); 764 for (; addr < end; addr = next, pmd++) { 767 if (!pmd_present(*pmd)) 1017 pmd_t *pmd; local 1056 pmd_t *pmd; local 1141 pmd_t *pmd; local 1173 pmd_t *pmd; local 1236 pmd_t *pmd; local 1382 pmd_t pmd; local 1553 pmd_t *pmd; local 1575 pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) argument 1588 pmd_clear_huge(pmd_t *pmd) argument 1598 pmd_free_pte_page(pmd_t *pmd, unsigned long addr) argument [all...] |