| /freebsd-12-stable/sys/powerpc/aim/ |
| D | mmu_oea64.c | 220 static int moea64_pvo_enter(mmu_t mmu, struct pvo_entry *pvo, 222 static void moea64_pvo_remove_from_pmap(mmu_t mmu, struct pvo_entry *pvo); 223 static void moea64_pvo_remove_from_page(mmu_t mmu, struct pvo_entry *pvo); 361 struct pvo_entry *pvo; in alloc_pvo_entry() local 369 pvo = &moea64_bpvo_pool[ in alloc_pvo_entry() 371 bzero(pvo, sizeof(*pvo)); in alloc_pvo_entry() 372 pvo->pvo_vaddr = PVO_BOOTSTRAP; in alloc_pvo_entry() 374 pvo = uma_zalloc(moea64_pvo_zone, M_NOWAIT); in alloc_pvo_entry() 375 bzero(pvo, sizeof(*pvo)); in alloc_pvo_entry() 378 return (pvo); in alloc_pvo_entry() [all …]
|
| D | mmu_oea.c | 1030 struct pvo_entry key, *pvo; in moea_unwire() local 1034 for (pvo = RB_NFIND(pvo_tree, &pm->pmap_pvo, &key); in moea_unwire() 1035 pvo != NULL && PVO_VADDR(pvo) < eva; in moea_unwire() 1036 pvo = RB_NEXT(pvo_tree, &pm->pmap_pvo, pvo)) { in moea_unwire() 1037 if ((pvo->pvo_vaddr & PVO_WIRED) == 0) in moea_unwire() 1038 panic("moea_unwire: pvo %p is missing PVO_WIRED", pvo); in moea_unwire() 1039 pvo->pvo_vaddr &= ~PVO_WIRED; in moea_unwire() 1251 struct pvo_entry *pvo; in moea_extract() local 1255 pvo = moea_pvo_find_va(pm, va & ~ADDR_POFF, NULL); in moea_extract() 1256 if (pvo == NULL) in moea_extract() [all …]
|
| D | isa3_hashtb.c | 191 isa3_hashtb_pte_synch(mmu_t mmu, struct pvo_entry *pvo) in isa3_hashtb_pte_synch() argument 193 volatile struct lpte *pt = isa3_hashtb_pteg_table + pvo->pvo_pte.slot; in isa3_hashtb_pte_synch() 197 PMAP_LOCK_ASSERT(pvo->pvo_pmap, MA_OWNED); in isa3_hashtb_pte_synch() 199 moea64_pte_from_pvo(pvo, &properpt); in isa3_hashtb_pte_synch() 218 isa3_hashtb_pte_clear(mmu_t mmu, struct pvo_entry *pvo, uint64_t ptebit) in isa3_hashtb_pte_clear() argument 220 volatile struct lpte *pt = isa3_hashtb_pteg_table + pvo->pvo_pte.slot; in isa3_hashtb_pte_clear() 224 PMAP_LOCK_ASSERT(pvo->pvo_pmap, MA_OWNED); in isa3_hashtb_pte_clear() 226 moea64_pte_from_pvo(pvo, &properpt); in isa3_hashtb_pte_clear() 252 TLBIE(pvo->pvo_vpn); in isa3_hashtb_pte_clear() 256 ptelo = isa3_hashtb_pte_unset(mmu, pvo); in isa3_hashtb_pte_clear() [all …]
|
| D | moea64_native.c | 233 moea64_pte_synch_native(mmu_t mmu, struct pvo_entry *pvo) in moea64_pte_synch_native() argument 235 volatile struct lpte *pt = moea64_pteg_table + pvo->pvo_pte.slot; in moea64_pte_synch_native() 239 PMAP_LOCK_ASSERT(pvo->pvo_pmap, MA_OWNED); in moea64_pte_synch_native() 241 moea64_pte_from_pvo(pvo, &properpt); in moea64_pte_synch_native() 260 moea64_pte_clear_native(mmu_t mmu, struct pvo_entry *pvo, uint64_t ptebit) in moea64_pte_clear_native() argument 262 volatile struct lpte *pt = moea64_pteg_table + pvo->pvo_pte.slot; in moea64_pte_clear_native() 266 PMAP_LOCK_ASSERT(pvo->pvo_pmap, MA_OWNED); in moea64_pte_clear_native() 268 moea64_pte_from_pvo(pvo, &properpt); in moea64_pte_clear_native() 294 TLBIE(pvo->pvo_vpn); in moea64_pte_clear_native() 298 ptelo = moea64_pte_unset_native(mmu, pvo); in moea64_pte_clear_native() [all …]
|
| D | moea64_if.m | 51 struct pvo_entry *pvo, int flags) 55 refchg = MOEA64_PTE_UNSET(mmu, pvo); 56 MOEA64_PTE_INSERT(mmu, pvo);
|
| D | mmu_oea64.h | 44 void moea64_pte_from_pvo(const struct pvo_entry *pvo, struct lpte *lpte);
|
| /freebsd-12-stable/sys/powerpc/ps3/ |
| D | mmu_ps3.c | 155 mps3_pte_synch_locked(struct pvo_entry *pvo) in mps3_pte_synch_locked() argument 160 lv1_read_htab_entries(mps3_vas_id, pvo->pvo_pte.slot & ~0x3UL, in mps3_pte_synch_locked() 165 if ((halfbucket[pvo->pvo_pte.slot & 0x3] & LPTE_AVPN_MASK) != in mps3_pte_synch_locked() 166 ((pvo->pvo_vpn >> (ADDR_API_SHFT64 - ADDR_PIDX_SHFT)) & in mps3_pte_synch_locked() 169 if (!(halfbucket[pvo->pvo_pte.slot & 0x3] & LPTE_VALID)) in mps3_pte_synch_locked() 177 return ((rcbits >> ((3 - (pvo->pvo_pte.slot & 0x3))*16)) & in mps3_pte_synch_locked() 182 mps3_pte_synch(mmu_t mmu, struct pvo_entry *pvo) in mps3_pte_synch() argument 187 retval = mps3_pte_synch_locked(pvo); in mps3_pte_synch() 194 mps3_pte_clear(mmu_t mmu, struct pvo_entry *pvo, uint64_t ptebit) in mps3_pte_clear() argument 201 refchg = mps3_pte_synch_locked(pvo); in mps3_pte_clear() [all …]
|
| /freebsd-12-stable/sys/powerpc/pseries/ |
| D | mmu_phyp.c | 71 static int64_t mphyp_pte_synch(mmu_t, struct pvo_entry *pvo); 72 static int64_t mphyp_pte_clear(mmu_t, struct pvo_entry *pvo, uint64_t ptebit); 73 static int64_t mphyp_pte_unset(mmu_t, struct pvo_entry *pvo); 74 static int mphyp_pte_insert(mmu_t, struct pvo_entry *pvo); 244 mphyp_pte_synch(mmu_t mmu, struct pvo_entry *pvo) in mphyp_pte_synch() argument 250 phyp_pft_hcall(H_READ, 0, pvo->pvo_pte.slot, 0, 0, &pte.pte_hi, in mphyp_pte_synch() 253 ((pvo->pvo_vpn >> (ADDR_API_SHFT64 - ADDR_PIDX_SHFT)) & in mphyp_pte_synch() 263 mphyp_pte_clear(mmu_t mmu, struct pvo_entry *pvo, uint64_t ptebit) in mphyp_pte_clear() argument 277 PMAP_LOCK_ASSERT(pvo->pvo_pmap, MA_OWNED); in mphyp_pte_clear() 280 refchg = mphyp_pte_synch(mmu, pvo); in mphyp_pte_clear() [all …]
|
| /freebsd-12-stable/sys/powerpc/include/ |
| D | pmap.h | 127 #define PVO_VADDR(pvo) ((pvo)->pvo_vaddr & ~ADDR_POFF) argument 128 #define PVO_PTEGIDX_GET(pvo) ((pvo)->pvo_vaddr & PVO_PTEGIDX_MASK) argument 129 #define PVO_PTEGIDX_ISSET(pvo) ((pvo)->pvo_vaddr & PVO_PTEGIDX_VALID) argument 130 #define PVO_PTEGIDX_CLR(pvo) \ argument 131 ((void)((pvo)->pvo_vaddr &= ~(PVO_PTEGIDX_VALID|PVO_PTEGIDX_MASK))) 132 #define PVO_PTEGIDX_SET(pvo, i) \ argument 133 ((void)((pvo)->pvo_vaddr |= (i)|PVO_PTEGIDX_VALID)) 134 #define PVO_VSID(pvo) ((pvo)->pvo_vpn >> 16) argument
|