/linux-2.6.39/include/asm-generic/ |
D | 4level-fixup.h | 13 #define pmd_alloc(mm, pud, address) \ argument 14 ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \ 15 NULL: pmd_offset(pud, address)) 19 #define pud_none(pud) 0 argument 20 #define pud_bad(pud) 0 argument 21 #define pud_present(pud) 1 argument 22 #define pud_ERROR(pud) do { } while (0) argument 23 #define pud_clear(pud) pgd_clear(pud) argument 24 #define pud_val(pud) pgd_val(pud) argument 25 #define pud_populate(mm, pud, pmd) pgd_populate(mm, pud, pmd) argument [all …]
|
D | pgtable-nopmd.h | 17 typedef struct { pud_t pud; } pmd_t; member 29 static inline int pud_none(pud_t pud) { return 0; } in pud_none() argument 30 static inline int pud_bad(pud_t pud) { return 0; } in pud_bad() argument 31 static inline int pud_present(pud_t pud) { return 1; } in pud_present() argument 32 static inline void pud_clear(pud_t *pud) { } in pud_clear() argument 33 #define pmd_ERROR(pmd) (pud_ERROR((pmd).pud)) 43 static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address) in pmd_offset() argument 45 return (pmd_t *)pud; in pmd_offset() 48 #define pmd_val(x) (pud_val((x).pud)) 51 #define pud_page(pud) (pmd_page((pmd_t){ pud })) argument [all …]
|
/linux-2.6.39/arch/s390/include/asm/ |
D | pgalloc.h | 71 #define pgd_populate(mm, pgd, pud) BUG() argument 72 #define pgd_populate_kernel(mm, pgd, pud) BUG() argument 74 #define pud_populate(mm, pud, pmd) BUG() argument 75 #define pud_populate_kernel(mm, pud, pmd) BUG() argument 98 #define pud_free(mm, pud) crst_table_free(mm, (unsigned long *) pud) argument 110 pgd_t *pgd, pud_t *pud) in pgd_populate_kernel() argument 112 pgd_val(*pgd) = _REGION2_ENTRY | __pa(pud); in pgd_populate_kernel() 115 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud) in pgd_populate() argument 117 pgd_populate_kernel(mm, pgd, pud); in pgd_populate() 120 pud = get_shadow_table(pud); in pgd_populate() [all …]
|
D | pgtable.h | 468 static inline int pud_present(pud_t pud) { return 1; } in pud_present() argument 469 static inline int pud_none(pud_t pud) { return 0; } in pud_none() argument 470 static inline int pud_bad(pud_t pud) { return 0; } in pud_bad() argument 501 static inline int pud_present(pud_t pud) in pud_present() argument 503 if ((pud_val(pud) & _REGION_ENTRY_TYPE_MASK) < _REGION_ENTRY_TYPE_R3) in pud_present() 505 return (pud_val(pud) & _REGION_ENTRY_ORIGIN) != 0UL; in pud_present() 508 static inline int pud_none(pud_t pud) in pud_none() argument 510 if ((pud_val(pud) & _REGION_ENTRY_TYPE_MASK) < _REGION_ENTRY_TYPE_R3) in pud_none() 512 return (pud_val(pud) & _REGION_ENTRY_INV) != 0UL; in pud_none() 515 static inline int pud_bad(pud_t pud) in pud_bad() argument [all …]
|
/linux-2.6.39/arch/mips/mm/ |
D | hugetlbpage.c | 29 pud_t *pud; in huge_pte_alloc() local 33 pud = pud_alloc(mm, pgd, addr); in huge_pte_alloc() 34 if (pud) in huge_pte_alloc() 35 pte = (pte_t *)pmd_alloc(mm, pud, addr); in huge_pte_alloc() 43 pud_t *pud; in huge_pte_offset() local 48 pud = pud_offset(pgd, addr); in huge_pte_offset() 49 if (pud_present(*pud)) in huge_pte_offset() 50 pmd = pmd_offset(pud, addr); in huge_pte_offset() 83 int pud_huge(pud_t pud) in pud_huge() argument 85 return (pud_val(pud) & _PAGE_HUGE) != 0; in pud_huge()
|
/linux-2.6.39/arch/x86/mm/ |
D | init_64.c | 163 pud_t *pud = (pud_t *)spp_getpage(); in fill_pud() local 164 pgd_populate(&init_mm, pgd, pud); in fill_pud() 165 if (pud != pud_offset(pgd, 0)) in fill_pud() 167 pud, pud_offset(pgd, 0)); in fill_pud() 172 static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr) in fill_pmd() argument 174 if (pud_none(*pud)) { in fill_pmd() 176 pud_populate(&init_mm, pud, pmd); in fill_pmd() 177 if (pmd != pmd_offset(pud, 0)) in fill_pmd() 179 pmd, pmd_offset(pud, 0)); in fill_pmd() 181 return pmd_offset(pud, vaddr); in fill_pmd() [all …]
|
D | hugetlbpage.c | 61 static void huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) in huge_pmd_share() argument 94 if (pud_none(*pud)) in huge_pmd_share() 95 pud_populate(mm, pud, (pmd_t *)((unsigned long)spte & PAGE_MASK)); in huge_pmd_share() 118 pud_t *pud = pud_offset(pgd, *addr); in huge_pmd_unshare() local 124 pud_clear(pud); in huge_pmd_unshare() 134 pud_t *pud; in huge_pte_alloc() local 138 pud = pud_alloc(mm, pgd, addr); in huge_pte_alloc() 139 if (pud) { in huge_pte_alloc() 141 pte = (pte_t *)pud; in huge_pte_alloc() 144 if (pud_none(*pud)) in huge_pte_alloc() [all …]
|
D | pgtable_32.c | 31 pud_t *pud; in set_pte_vaddr() local 40 pud = pud_offset(pgd, vaddr); in set_pte_vaddr() 41 if (pud_none(*pud)) { in set_pte_vaddr() 45 pmd = pmd_offset(pud, vaddr); in set_pte_vaddr() 72 pud_t *pud; in set_pmd_pfn() local 88 pud = pud_offset(pgd, vaddr); in set_pmd_pfn() 89 pmd = pmd_offset(pud, vaddr); in set_pmd_pfn()
|
/linux-2.6.39/arch/sh/mm/ |
D | hugetlbpage.c | 28 pud_t *pud; in huge_pte_alloc() local 34 pud = pud_alloc(mm, pgd, addr); in huge_pte_alloc() 35 if (pud) { in huge_pte_alloc() 36 pmd = pmd_alloc(mm, pud, addr); in huge_pte_alloc() 48 pud_t *pud; in huge_pte_offset() local 54 pud = pud_offset(pgd, addr); in huge_pte_offset() 55 if (pud) { in huge_pte_offset() 56 pmd = pmd_offset(pud, addr); in huge_pte_offset() 81 int pud_huge(pud_t pud) in pud_huge() argument
|
D | fault_64.c | 87 pud_t *pud; in handle_vmalloc_fault() local 94 pud = pud_offset(dir, address); in handle_vmalloc_fault() 95 if (pud_none_or_clear_bad(pud)) in handle_vmalloc_fault() 98 pmd = pmd_offset(pud, address); in handle_vmalloc_fault() 121 pud_t *pud; in handle_tlbmiss() local 146 pud = pud_offset(dir, address); in handle_tlbmiss() 147 if (pud_none(*pud) || !pud_present(*pud)) in handle_tlbmiss() 150 pmd = pmd_offset(pud, address); in handle_tlbmiss()
|
/linux-2.6.39/arch/arm/mm/ |
D | idmap.c | 7 static void idmap_add_pmd(pud_t *pud, unsigned long addr, unsigned long end, in idmap_add_pmd() argument 10 pmd_t *pmd = pmd_offset(pud, addr); in idmap_add_pmd() 22 pud_t *pud = pud_offset(pgd, addr); in idmap_add_pud() local 27 idmap_add_pmd(pud, addr, next, prot); in idmap_add_pud() 28 } while (pud++, addr = next, addr != end); in idmap_add_pud() 47 static void idmap_del_pmd(pud_t *pud, unsigned long addr, unsigned long end) in idmap_del_pmd() argument 49 pmd_t *pmd = pmd_offset(pud, addr); in idmap_del_pmd() 55 pud_t *pud = pud_offset(pgd, addr); in idmap_del_pud() local 60 idmap_del_pmd(pud, addr, next); in idmap_del_pud() 61 } while (pud++, addr = next, addr != end); in idmap_del_pud()
|
D | pgd.c | 85 pud_t *pud; in pgd_free() local 96 pud = pud_offset(pgd, 0); in pgd_free() 97 if (pud_none_or_clear_bad(pud)) in pgd_free() 100 pmd = pmd_offset(pud, 0); in pgd_free() 108 pud_clear(pud); in pgd_free() 112 pud_free(mm, pud); in pgd_free()
|
/linux-2.6.39/arch/x86/kernel/ |
D | machine_kexec_64.c | 27 pud_t *pud; in init_one_level2_page() local 38 pud = (pud_t *)page_address(page); in init_one_level2_page() 39 clear_page(pud); in init_one_level2_page() 40 set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE)); in init_one_level2_page() 42 pud = pud_offset(pgd, addr); in init_one_level2_page() 43 if (!pud_present(*pud)) { in init_one_level2_page() 49 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in init_one_level2_page() 51 pmd = pmd_offset(pud, addr); in init_one_level2_page() 140 free_page((unsigned long)image->arch.pud); in free_transition_pgtable() 147 pud_t *pud; in init_transition_pgtable() local [all …]
|
/linux-2.6.39/arch/mips/include/asm/ |
D | pgtable-64.h | 192 static inline int pud_none(pud_t pud) in pud_none() argument 194 return pud_val(pud) == (unsigned long) invalid_pmd_table; in pud_none() 197 static inline int pud_bad(pud_t pud) in pud_bad() argument 199 return pud_val(pud) & ~PAGE_MASK; in pud_bad() 202 static inline int pud_present(pud_t pud) in pud_present() argument 204 return pud_val(pud) != (unsigned long) invalid_pmd_table; in pud_present() 237 static inline unsigned long pud_page_vaddr(pud_t pud) in pud_page_vaddr() argument 239 return pud_val(pud); in pud_page_vaddr() 241 #define pud_phys(pud) virt_to_phys((void *)pud_val(pud)) argument 242 #define pud_page(pud) (pfn_to_page(pud_phys(pud) >> PAGE_SHIFT)) argument [all …]
|
/linux-2.6.39/arch/x86/include/asm/ |
D | pgalloc.h | 103 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument 106 set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd))); in pud_populate() 111 static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud) in pgd_populate() argument 113 paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT); in pgd_populate() 114 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud))); in pgd_populate() 122 static inline void pud_free(struct mm_struct *mm, pud_t *pud) in pud_free() argument 124 BUG_ON((unsigned long)pud & (PAGE_SIZE-1)); in pud_free() 125 free_page((unsigned long)pud); in pud_free() 128 extern void ___pud_free_tlb(struct mmu_gather *tlb, pud_t *pud); 130 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument [all …]
|
/linux-2.6.39/arch/um/include/asm/ |
D | pgtable-3level.h | 59 #define pud_populate(mm, pud, pmd) \ argument 60 set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd))) 84 static inline void pud_clear (pud_t *pud) in pud_clear() argument 86 set_pud(pud, __pud(_PAGE_NEWPAGE)); in pud_clear() 89 #define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK) argument 90 #define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PAGE_MASK)) argument 93 #define pmd_offset(pud, address) ((pmd_t *) pud_page_vaddr(*(pud)) + \ argument
|
/linux-2.6.39/arch/x86/power/ |
D | hibernate_64.c | 42 static int res_phys_pud_init(pud_t *pud, unsigned long address, unsigned long end) in res_phys_pud_init() argument 47 pud = pud + i; in res_phys_pud_init() 48 for (; i < PTRS_PER_PUD; pud++, i++) { in res_phys_pud_init() 59 set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); in res_phys_pud_init() 91 pud_t *pud = (pud_t *)get_safe_page(GFP_ATOMIC); in set_up_temporary_mappings() local 92 if (!pud) in set_up_temporary_mappings() 97 if ((error = res_phys_pud_init(pud, __pa(start), __pa(next)))) in set_up_temporary_mappings() 100 mk_kernel_pgd(__pa(pud))); in set_up_temporary_mappings()
|
/linux-2.6.39/arch/um/kernel/ |
D | mem.c | 103 static void __init one_md_table_init(pud_t *pud) in one_md_table_init() argument 107 set_pud(pud, __pud(_KERNPG_TABLE + (unsigned long) __pa(pmd_table))); in one_md_table_init() 108 if (pmd_table != pmd_offset(pud, 0)) in one_md_table_init() 117 pud_t *pud; in fixrange_init() local 128 pud = pud_offset(pgd, vaddr); in fixrange_init() 129 if (pud_none(*pud)) in fixrange_init() 130 one_md_table_init(pud); in fixrange_init() 131 pmd = pmd_offset(pud, vaddr); in fixrange_init() 162 pud_t *pud; in init_highmem() local 174 pud = pud_offset(pgd, vaddr); in init_highmem() [all …]
|
D | tlb.c | 214 static inline int update_pmd_range(pud_t *pud, unsigned long addr, in update_pmd_range() argument 222 pmd = pmd_offset(pud, addr); in update_pmd_range() 240 pud_t *pud; in update_pud_range() local 244 pud = pud_offset(pgd, addr); in update_pud_range() 247 if (!pud_present(*pud)) { in update_pud_range() 248 if (hvc->force || pud_newpage(*pud)) { in update_pud_range() 250 pud_mkuptodate(*pud); in update_pud_range() 253 else ret = update_pmd_range(pud, addr, next, hvc); in update_pud_range() 254 } while (pud++, addr = next, ((addr < end) && !ret)); in update_pud_range() 294 pud_t *pud; in flush_tlb_kernel_range_common() local [all …]
|
/linux-2.6.39/arch/powerpc/include/asm/ |
D | pgalloc-64.h | 60 static inline void pud_free(struct mm_struct *mm, pud_t *pud) in pud_free() argument 62 kmem_cache_free(PGT_CACHE(PUD_INDEX_SIZE), pud); in pud_free() 65 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) in pud_populate() argument 67 pud_set(pud, (unsigned long)pmd); in pud_populate() 78 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd) argument 136 #define __pud_free_tlb(tlb, pud, addr) \ argument 137 pgtable_free_tlb(tlb, pud, PUD_INDEX_SIZE)
|
/linux-2.6.39/lib/ |
D | ioremap.c | 34 static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr, in ioremap_pmd_range() argument 41 pmd = pmd_alloc(&init_mm, pud, addr); in ioremap_pmd_range() 55 pud_t *pud; in ioremap_pud_range() local 59 pud = pud_alloc(&init_mm, pgd, addr); in ioremap_pud_range() 60 if (!pud) in ioremap_pud_range() 64 if (ioremap_pmd_range(pud, addr, next, phys_addr + addr, prot)) in ioremap_pud_range() 66 } while (pud++, addr = next, addr != end); in ioremap_pud_range()
|
/linux-2.6.39/mm/ |
D | sparse-vmemmap.c | 113 pmd_t * __meminit vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node) in vmemmap_pmd_populate() argument 115 pmd_t *pmd = pmd_offset(pud, addr); in vmemmap_pmd_populate() 127 pud_t *pud = pud_offset(pgd, addr); in vmemmap_pud_populate() local 128 if (pud_none(*pud)) { in vmemmap_pud_populate() 132 pud_populate(&init_mm, pud, p); in vmemmap_pud_populate() 134 return pud; in vmemmap_pud_populate() 155 pud_t *pud; in vmemmap_populate_basepages() local 163 pud = vmemmap_pud_populate(pgd, addr, node); in vmemmap_populate_basepages() 164 if (!pud) in vmemmap_populate_basepages() 166 pmd = vmemmap_pmd_populate(pud, addr, node); in vmemmap_populate_basepages()
|
/linux-2.6.39/arch/tile/mm/ |
D | hugetlbpage.c | 35 pud_t *pud; in huge_pte_alloc() local 42 pud = pud_alloc(mm, pgd, addr); in huge_pte_alloc() 43 if (pud) in huge_pte_alloc() 44 pte = (pte_t *) pmd_alloc(mm, pud, addr); in huge_pte_alloc() 53 pud_t *pud; in huge_pte_offset() local 58 pud = pud_offset(pgd, addr); in huge_pte_offset() 59 if (pud_present(*pud)) in huge_pte_offset() 60 pmd = pmd_offset(pud, addr); in huge_pte_offset() 96 int pud_huge(pud_t pud) in pud_huge() argument 120 int pud_huge(pud_t pud) in pud_huge() argument [all …]
|
/linux-2.6.39/arch/ia64/mm/ |
D | hugetlbpage.c | 32 pud_t *pud; in huge_pte_alloc() local 37 pud = pud_alloc(mm, pgd, taddr); in huge_pte_alloc() 38 if (pud) { in huge_pte_alloc() 39 pmd = pmd_alloc(mm, pud, taddr); in huge_pte_alloc() 51 pud_t *pud; in huge_pte_offset() local 57 pud = pud_offset(pgd, taddr); in huge_pte_offset() 58 if (pud_present(*pud)) { in huge_pte_offset() 59 pmd = pmd_offset(pud, taddr); in huge_pte_offset() 112 int pud_huge(pud_t pud) in pud_huge() argument
|
/linux-2.6.39/arch/ia64/xen/ |
D | xencomm.c | 52 pud_t *pud; in xencomm_vtop() local 69 pud = pud_offset(pgd, vaddr); in xencomm_vtop() 70 if (pud_none(*pud) || pud_bad(*pud)) in xencomm_vtop() 73 pmd = pmd_offset(pud, vaddr); in xencomm_vtop()
|