Lines Matching full:pmd
21 * allocate the first pmd adjacent to the pgd. This means that we can
22 * subtract a constant offset to get to it. The pmd and pgd sizes are
23 * arranged so that a single pmd covers 4GB (giving a full 64-bit
37 /* Populate first pmd with allocated memory. We mark it in pgd_alloc()
39 * pmd entry may not be cleared. */ in pgd_alloc()
44 /* The first pmd entry also is marked with PxD_FLAG_ATTACHED as in pgd_alloc()
45 * a signal that this pmd may not be freed */ in pgd_alloc()
63 /* Three Level Page Table Support for pmd's */
65 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument
68 (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT))); in pud_populate()
76 static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) in pmd_free() argument
78 if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED) { in pmd_free()
80 * This is the permanent pmd attached to the pgd; in pmd_free()
88 free_pages((unsigned long)pmd, PMD_ORDER); in pmd_free()
94 pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) in pmd_populate_kernel() argument
98 * the permanent pmd */ in pmd_populate_kernel()
99 if(pmd_flag(*pmd) & PxD_FLAG_ATTACHED) in pmd_populate_kernel()
100 set_pmd(pmd, __pmd((PxD_FLAG_PRESENT | in pmd_populate_kernel()
106 set_pmd(pmd, __pmd((PxD_FLAG_PRESENT | PxD_FLAG_VALID) in pmd_populate_kernel()
110 #define pmd_populate(mm, pmd, pte_page) \ argument
111 pmd_populate_kernel(mm, pmd, page_address(pte_page))
112 #define pmd_pgtable(pmd) pmd_page(pmd) argument