/kvm-unit-tests/lib/arm/asm/ |
H A D | pgtable.h | 31 #define pmd_none(pmd) (!pmd_val(pmd)) argument 35 #define pmd_valid(pmd) (pmd_val(pmd) & PMD_SECT_VALID) argument 38 #define pmd_huge(pmd) \ argument 39 ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_SECT) 69 #define pmd_free(pmd) free_page(pmd) argument 73 pmd_t *pmd = alloc_page(); in pmd_alloc_one() local 74 return pmd; in pmd_alloc_one() 86 static inline pte_t *pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument 88 return pgtable_va(pmd_val(pmd) & PHYS_MASK & (s32)PAGE_MASK); in pmd_page_vaddr() 93 #define pte_offset(pmd, addr) \ argument [all …]
|
H A D | page.h | 23 typedef struct { pmdval_t pmd; } pmd_t; member 28 #define pmd_val(x) ((x).pmd)
|
/kvm-unit-tests/lib/s390x/ |
H A D | mmu.c | 69 pmd_t *pmd; in get_pmd() local 72 pmd = pmd_alloc(pud, vaddr); in get_pmd() 73 return pmd; in get_pmd() 81 static inline pte_t *get_pte(pmd_t *pmd, uintptr_t vaddr) in get_pte() argument 85 assert(!pmd_large(*pmd)); in get_pte() 86 pte = pte_alloc(pmd, vaddr); in get_pte() 96 static void split_pmd(pmd_t *pmd, uintptr_t va) in split_pmd() argument 98 phys_addr_t pa = pmd_val(*pmd) & SEGMENT_ENTRY_SFAA; in split_pmd() 102 assert(pmd_large(*pmd)); in split_pmd() 104 prot = pmd_val(*pmd) & (SEGMENT_ENTRY_IEP | SEGMENT_ENTRY_P); in split_pmd() [all …]
|
/kvm-unit-tests/lib/arm64/asm/ |
H A D | pgtable.h | 34 #define pmd_none(pmd) (!pmd_val(pmd)) argument 39 #define pmd_valid(pmd) (pmd_val(pmd) & PMD_SECT_VALID) argument 42 #define pmd_huge(pmd) \ argument 43 ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_SECT) 67 static inline pte_t *pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument 69 return pgtable_va(pmd_val(pmd) & PHYS_MASK & (s32)PAGE_MASK); in pmd_page_vaddr() 77 #define pmd_free(pmd) free_page(pmd) argument 81 pmd_t *pmd = alloc_page(); in pmd_alloc_one() local 82 return pmd; in pmd_alloc_one() 95 #define pmd_free(pmd) argument [all …]
|
H A D | page.h | 49 typedef struct { pmdval_t pmd; } pmd_t; member 55 #define pmd_val(x) ((x).pmd)
|
/kvm-unit-tests/lib/ppc64/asm/ |
H A D | pgtable.h | 28 #define pmd_none(pmd) (!pmd_val(pmd)) argument 33 #define pmd_valid(pmd) (pmd_val(pmd) & cpu_to_be64(_PAGE_VALID)) argument 36 #define pmd_huge(pmd) false argument 48 static inline pte_t *pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument 50 return pgtable_va(be64_to_cpu(pmd_val(pmd)) & PHYS_MASK & ~0xfffULL); in pmd_page_vaddr() 60 #define pte_offset(pmd, addr) (pmd_page_vaddr(*(pmd)) + pte_index(addr)) argument 89 #define pmd_free(pmd) free(pmd) argument 93 pmd_t *pmd = memalign_pages(sz, sz); in pmd_alloc_one() local 94 memset(pmd, 0, sz); in pmd_alloc_one() 95 return pmd; in pmd_alloc_one() [all …]
|
H A D | page.h | 36 typedef struct { pmdval_t pmd; } pmd_t; member 42 #define pmd_val(x) ((x).pmd)
|
/kvm-unit-tests/lib/s390x/asm/ |
H A D | pgtable.h | 122 #define pte_offset(pmd, addr) ((pte_t *)pmd_addr(*(pmd)) + pte_index(addr)) argument 176 pmd_t *pmd = alloc_pages(SEGMENT_TABLE_ORDER); in pmd_alloc_one() local 180 pmd_val(pmd[i]) = SEGMENT_ENTRY_TT_SEGMENT | SEGMENT_ENTRY_I; in pmd_alloc_one() 181 return pmd; in pmd_alloc_one() 187 pmd_t *pmd = pmd_alloc_one(); in pmd_alloc() local 188 pud_val(*pud) = __pa(pmd) | REGION_ENTRY_TT_REGION3 | in pmd_alloc() 204 static inline pte_t *pte_alloc(pmd_t *pmd, unsigned long addr) in pte_alloc() argument 206 if (pmd_none(*pmd)) { in pte_alloc() 208 pmd_val(*pmd) = __pa(pte) | SEGMENT_ENTRY_TT_SEGMENT; in pte_alloc() 210 return pte_offset(pmd, addr); in pte_alloc()
|
H A D | page.h | 23 typedef struct { pmdval_t pmd; } pmd_t; member 29 #define pmd_val(x) ((x).pmd)
|
/kvm-unit-tests/lib/arm/ |
H A D | mmu.c | 85 pmd_t *pmd = pmd_alloc(pud, vaddr); in get_pte() local 86 pte_t *pte = pte_alloc(pmd, vaddr); in get_pte() 125 pmd_t *pmd; in follow_pte() local 136 pmd = pmd_offset(pud, vaddr); in follow_pte() 137 if (!pmd_valid(*pmd)) in follow_pte() 139 if (pmd_huge(*pmd)) in follow_pte() 140 return &pmd_val(*pmd); in follow_pte() 142 pte = pte_offset(pmd, vaddr); in follow_pte() 190 pmd_t *pmd; in mmu_set_range_sect() local 199 pmd = pmd_alloc(pud, vaddr); in mmu_set_range_sect() [all …]
|
/kvm-unit-tests/lib/ppc64/ |
H A D | mmu.c | 63 pmd_t *pmd = pmd_alloc(pud, vaddr); in get_pte() local 64 pte_t *pte = pte_alloc(pmd, vaddr); in get_pte() 108 pmd_t *pmd; in follow_pte() local 119 pmd = pmd_offset(pud, vaddr); in follow_pte() 120 if (!pmd_valid(*pmd)) in follow_pte() 122 if (pmd_huge(*pmd)) in follow_pte() 123 return &pmd_val(*pmd); in follow_pte() 125 pte = pte_offset(pmd, vaddr); in follow_pte()
|