| /freebsd/lib/libkvm/ |
| H A D | kvm_minidump_powerpc64_hpt.c | 83 /* PTE */ 107 * PTE AVA field manipulation macros. 123 /* Masks to obtain the Physical Address from PTE low 64-bit word. */ 215 * by VSID, in order to find out the EA from a PTE. in slb_init() 311 ppc64_pt_entry_t pte, *p; in pte_get() local 313 p = _kvm_pmap_get(kd, ptex, sizeof(pte)); in pte_get() 314 pte.pte_hi = be64toh(p->pte_hi); in pte_get() 315 pte.pte_lo = be64toh(p->pte_lo); in pte_get() 316 return (pte); in pte_get() 328 ppc64_pt_entry_t pte; in pte_search() local [all …]
|
| H A D | kvm_minidump_arm.c | 61 arm_pt_entry_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); in _arm_pte_get() local 63 return _kvm32toh(kd, *pte); in _arm_pte_get() 153 arm_pt_entry_t pte; in _arm_minidump_kvatop() local 167 if (pteindex >= vm->hdr.ptesize / sizeof(pte)) in _arm_minidump_kvatop() 169 pte = _arm_pte_get(kd, pteindex); in _arm_minidump_kvatop() 170 if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_INV) { in _arm_minidump_kvatop() 172 "_arm_minidump_kvatop: pte not valid"); in _arm_minidump_kvatop() 175 if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_L) { in _arm_minidump_kvatop() 178 a = (pte & ARM_L2_L_FRAME) + in _arm_minidump_kvatop() 182 (pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_T) { in _arm_minidump_kvatop() [all …]
|
| H A D | kvm_minidump_i386.c | 58 i386_pte_pae_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); in _i386_pte_pae_get() local 60 return le64toh(*pte); in _i386_pte_pae_get() 66 i386_pte_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); in _i386_pte_get() local 68 return le32toh(*pte); in _i386_pte_get() 150 i386_pte_pae_t pte; in _i386_minidump_vatop_pae() local 160 if (pteindex >= vm->hdr.ptesize / sizeof(pte)) in _i386_minidump_vatop_pae() 162 pte = _i386_pte_pae_get(kd, pteindex); in _i386_minidump_vatop_pae() 163 if ((pte & I386_PG_V) == 0) { in _i386_minidump_vatop_pae() 165 "_i386_minidump_vatop_pae: pte not valid"); in _i386_minidump_vatop_pae() 168 a = pte & I386_PG_FRAME_PAE; in _i386_minidump_vatop_pae() [all …]
|
| H A D | kvm_i386.c | 218 i386_pte_t pte; in _i386_vatop() local 269 pte_pa = (pde & I386_PG_FRAME) + (pteindex * sizeof(pte)); in _i386_vatop() 272 if (s < sizeof(pte)) { in _i386_vatop() 278 if (pread(kd->pmfd, &pte, sizeof(pte), ofs) != sizeof(pte)) { in _i386_vatop() 282 pte = le32toh(pte); in _i386_vatop() 283 if ((pte & I386_PG_V) == 0) { in _i386_vatop() 284 _kvm_err(kd, kd->program, "_kvm_kvatop: pte not valid"); in _i386_vatop() 288 a = (pte & I386_PG_FRAME) + offset; in _i386_vatop() 308 i386_pte_pae_t pte; in _i386_vatop_pae() local 362 if (s < sizeof(pte)) { in _i386_vatop_pae() [all …]
|
| H A D | kvm_minidump_amd64.c | 86 amd64_pte_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); in _amd64_pte_get() local 88 return le64toh(*pte); in _amd64_pte_get() 188 amd64_pte_t pte; in _amd64_minidump_vatop_v1() local 198 if (pteindex >= vm->hdr.pmapsize / sizeof(pte)) in _amd64_minidump_vatop_v1() 200 pte = _amd64_pte_get(kd, pteindex); in _amd64_minidump_vatop_v1() 201 if ((pte & AMD64_PG_V) == 0) { in _amd64_minidump_vatop_v1() 203 "_amd64_minidump_vatop_v1: pte not valid"); in _amd64_minidump_vatop_v1() 206 a = pte & AMD64_PG_FRAME; in _amd64_minidump_vatop_v1() 246 amd64_pte_t pte; in _amd64_minidump_vatop() local 267 /* TODO: Just read the single PTE */ in _amd64_minidump_vatop() [all …]
|
| H A D | kvm_arm.c | 188 #define l2pte_valid(pte) ((pte) != 0) argument 197 arm_pt_entry_t pte; in _arm_kvatop() local 211 pte_pa = (pd & ARM_L1_C_ADDR_MASK) + l2pte_index(va) * sizeof(pte); in _arm_kvatop() 213 if (pread(kd->pmfd, &pte, sizeof(pte), pte_off) != sizeof(pte)) { in _arm_kvatop() 217 pte = _kvm32toh(kd, pte); in _arm_kvatop() 218 if (!l2pte_valid(pte)) { in _arm_kvatop() 221 if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_L) { in _arm_kvatop() 222 *pa = (pte & ARM_L2_L_FRAME) | (va & ARM_L2_L_OFFSET); in _arm_kvatop() 225 *pa = (pte & ARM_L2_S_FRAME) | (va & ARM_L2_S_OFFSET); in _arm_kvatop()
|
| H A D | kvm_minidump_riscv.c | 58 riscv_pt_entry_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); in _riscv_pte_get() local 60 return le64toh(*pte); in _riscv_pte_get() 174 "_riscv_minidump_vatop: pte not valid"); in _riscv_minidump_vatop() 223 _riscv_entry_to_prot(riscv_pt_entry_t pte) in _riscv_entry_to_prot() argument 227 if ((pte & RISCV_PTE_W) != 0) in _riscv_entry_to_prot() 229 if ((pte & RISCV_PTE_X) != 0) in _riscv_entry_to_prot() 248 riscv_pt_entry_t pte = _riscv_pte_get(kd, pteindex); in _riscv_minidump_walk_pages() local 250 if (((pte & RISCV_PTE_V) == 0) || in _riscv_minidump_walk_pages() 251 ((pte & RISCV_PTE_RWX) == 0)) in _riscv_minidump_walk_pages() 255 pa = (pte >> RISCV_PTE_PPN0_S) << RISCV_L3_SHIFT; in _riscv_minidump_walk_pages() [all …]
|
| H A D | kvm_minidump_aarch64.c | 60 aarch64_pte_t *pte = _kvm_pmap_get(kd, pteindex, sizeof(*pte)); in _aarch64_pte_get() local 62 return le64toh(*pte); in _aarch64_pte_get() 253 _aarch64_entry_to_prot(aarch64_pte_t pte) in _aarch64_entry_to_prot() argument 258 if ((pte & AARCH64_ATTR_AP(AARCH64_ATTR_AP_RO)) == 0) in _aarch64_entry_to_prot() 260 if ((pte & AARCH64_ATTR_XN) == 0) in _aarch64_entry_to_prot() 279 aarch64_pte_t pte = _aarch64_pte_get(kd, pteindex); in _aarch64_minidump_walk_pages() local 281 if ((pte & AARCH64_ATTR_DESCR_MASK) != AARCH64_L3_PAGE) in _aarch64_minidump_walk_pages() 285 pa = pte & ~AARCH64_ATTR_MASK; in _aarch64_minidump_walk_pages() 288 _aarch64_entry_to_prot(pte), kd->vmst->page_size, 0)) { in _aarch64_minidump_walk_pages()
|
| /freebsd/sys/powerpc/pseries/ |
| H A D | mmu_phyp.c | 247 rm_init(&mphyp_eviction_lock, "pte eviction"); in mphyp_bootstrap() 298 struct lpte pte; in mphyp_pte_synch() local 302 phyp_pft_hcall(H_READ, 0, pvo->pvo_pte.slot, 0, 0, &pte.pte_hi, in mphyp_pte_synch() 303 &pte.pte_lo, &junk); in mphyp_pte_synch() 304 if ((pte.pte_hi & LPTE_AVPN_MASK) != in mphyp_pte_synch() 308 if (!(pte.pte_hi & LPTE_VALID)) in mphyp_pte_synch() 311 return (pte.pte_lo & (LPTE_CHG | LPTE_REF)); in mphyp_pte_synch() 371 struct lpte pte; in mphyp_pte_unset() local 377 moea64_pte_from_pvo(pvo, &pte); in mphyp_pte_unset() 380 pte.pte_hi & LPTE_AVPN_MASK, 0, &pte.pte_hi, &pte.pte_lo, in mphyp_pte_unset() [all …]
|
| /freebsd/sys/powerpc/include/ |
| H A D | pte.h | 33 * $NetBSD: pte.h,v 1.2 1998/08/31 14:43:40 tsubai Exp $ 46 /* 32-bit PTE */ 47 struct pte { struct 53 struct pte pt[8]; 56 /* 64-bit (long) PTE */ 78 typedef struct pte pte_t; 82 /* 32-bit PTE definitions */ 108 /* 64-bit PTE definitions */ 155 #define RPTE_LEAF 0x4000000000000000ULL /* is a PTE: always 1 */ 170 #define RPTE_ATTR_MEM 0x0000000000000000ULL /* PTE M */ [all …]
|
| /freebsd/sys/powerpc/aim/ |
| H A D | mmu_oea.c | 147 #include <machine/pte.h> 162 #define PVO_PADDR(pvo) ((pvo)->pvo_pte.pte.pte_lo & PTE_RPGN) 251 * PTE calls. 253 static int moea_pte_insert(u_int, struct pte *); 262 static struct pte *moea_pvo_to_pte(const struct pvo_entry *, int); 527 moea_pte_compare(const struct pte *pt, const struct pte *pvo_pt) in moea_pte_compare() 536 moea_pte_match(struct pte *pt, u_int sr, vm_offset_t va, int which) in moea_pte_match() 544 moea_pte_create(struct pte *pt, u_int sr, vm_offset_t va, u_int pte_lo) in moea_pte_create() 550 * Construct a PTE. Default to IMB initially. Valid bit only gets in moea_pte_create() 551 * set when the real pte is set in memory. in moea_pte_create() [all …]
|
| H A D | mmu_radix.c | 82 #include <machine/pte.h> 330 pt_entry_t *pte; in pmap_l3e_to_pte() local 334 pte = (pt_entry_t *)PHYS_TO_DMAP(ptepa); in pmap_l3e_to_pte() 335 return (&pte[pmap_pte_index(va)]); in pmap_l3e_to_pte() 841 #define pte_load_store(ptep, pte) atomic_swap_long(ptep, pte) argument 843 #define pte_store(ptep, pte) do { \ argument 844 MPASS((pte) & (RPTE_EAA_R | RPTE_EAA_W | RPTE_EAA_X)); \ 845 *(u_long *)(ptep) = htobe64((u_long)((pte) | PG_V | RPTE_LEAF)); \ 862 * (PTE) page mappings have identical settings for the following fields: 919 pt_entry_t *pte; in mmu_radix_kenter() local [all …]
|
| /freebsd/sys/i386/i386/ |
| H A D | pmap.c | 180 * entry (PTE). This can be used recursively. If the address of a PTE as 182 * address of the page directory entry (PDE) that maps the PTE will be 195 #define pmap_pde_v(pte) ((*(int *)pte & PG_V) != 0) argument 196 #define pmap_pte_w(pte) ((*(int *)pte & PG_W) != 0) argument 197 #define pmap_pte_m(pte) ((*(int *)pte & PG_M) != 0) argument 198 #define pmap_pte_u(pte) ((*(int *)pte & PG_A) != 0) argument 199 #define pmap_pte_v(pte) ((*(int *)pte & PG_V) != 0) argument 201 #define pmap_pte_set_w(pte, v) ((v) ? atomic_set_int((u_int *)(pte), PG_W) : \ argument 202 atomic_clear_int((u_int *)(pte), PG_W)) 203 #define pmap_pte_set_prot(pte, v) ((*(int *)pte &= ~PG_PROT), (*(int *)pte |= (v))) argument [all …]
|
| /freebsd/sys/x86/iommu/ |
| H A D | amd_idpgtbl.c | 72 iommu_gaddr_t base, int lvl, int flags, iommu_pte_t *pte, 134 iommu_pte_t *pte, *ptep; in amdiommu_pgtbl_map_pte() local 141 pte = (iommu_pte_t *)sf_buf_kva(*sf); in amdiommu_pgtbl_map_pte() 147 pte = iommu_map_pgtbl(domain->pgtbl_obj, idx, flags, sf); in amdiommu_pgtbl_map_pte() 148 if (pte == NULL) { in amdiommu_pgtbl_map_pte() 153 * it and create a pte in the preceeding page level in amdiommu_pgtbl_map_pte() 174 ptep->pte = VM_PAGE_TO_PHYS(m) | AMDIOMMU_PTE_IR | in amdiommu_pgtbl_map_pte() 184 pte += pglvl_pgtbl_pte_off(domain->pglvl, base, lvl); in amdiommu_pgtbl_map_pte() 185 return (pte); in amdiommu_pgtbl_map_pte() 193 iommu_pte_t *pte; in amdiommu_map_buf_locked() local [all …]
|
| H A D | intel_idpgtbl.c | 116 iommu_pte_t *pte; in dmar_idmap_nextlvl() local 134 pte = iommu_map_pgtbl(tbl->pgtbl_obj, idx, IOMMU_PGF_WAITOK, &sf); in dmar_idmap_nextlvl() 139 pte[i].pte = (DMAR_PTE_ADDR_MASK & f) | in dmar_idmap_nextlvl() 149 pte[i].pte = (DMAR_PTE_ADDR_MASK & in dmar_idmap_nextlvl() 333 iommu_pte_t *pte, *ptep; in dmar_pgtbl_map_pte() local 341 pte = (iommu_pte_t *)sf_buf_kva(*sf); in dmar_pgtbl_map_pte() 347 pte = iommu_map_pgtbl(domain->pgtbl_obj, idx, flags, sf); in dmar_pgtbl_map_pte() 348 if (pte == NULL) { in dmar_pgtbl_map_pte() 353 * it and create a pte in the preceeding page level in dmar_pgtbl_map_pte() 365 * pte write and clean while the lock is in dmar_pgtbl_map_pte() [all …]
|
| /freebsd/sys/powerpc/booke/ |
| H A D | pmap.c | 124 #include <machine/pte.h> 1142 pte_t *pte; in mmu_booke_kenter_attr() local 1151 pte = pte_find(kernel_pmap, va); in mmu_booke_kenter_attr() 1152 KASSERT((pte != NULL), ("mmu_booke_kenter: invalid va. NULL PTE")); in mmu_booke_kenter_attr() 1157 if (PTE_ISVALID(pte)) { in mmu_booke_kenter_attr() 1164 *pte = PTE_RPN_FROM_PA(pa) | flags; in mmu_booke_kenter_attr() 1168 // pdir_idx, ptbl_idx, va, pa, pte->rpn, pte->flags); in mmu_booke_kenter_attr() 1184 pte_t *pte; in mmu_booke_kremove() local 1192 pte = pte_find(kernel_pmap, va); in mmu_booke_kremove() 1194 if (!PTE_ISVALID(pte)) { in mmu_booke_kremove() [all …]
|
| /freebsd/sys/amd64/amd64/ |
| H A D | pmap.c | 312 safe_to_clear_referenced(pmap_t pmap, pt_entry_t pte) in safe_to_clear_referenced() argument 325 if ((pte & EPT_PG_WRITE) != 0) in safe_to_clear_referenced() 331 if ((pte & EPT_PG_EXECUTE) == 0 || in safe_to_clear_referenced() 638 pt_entry_t *pte); 1376 static void pmap_pte_props(pt_entry_t *pte, u_long bits, u_long mask); 1381 static void pmap_pti_wire_pte(void *pte); 1555 pt_entry_t *pte; in pmap_pde_to_pte() local 1559 pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME); in pmap_pde_to_pte() 1560 return (&pte[pmap_pte_index(va)]); in pmap_pde_to_pte() 2060 pt_entry_t *pte, *pcpu_pte; in pmap_bootstrap() local [all …]
|
| H A D | efirt_machdep.c | 122 pt_entry_t *pte; in efi_1t1_pte() local 174 pte = (pt_entry_t *)PHYS_TO_DMAP(mphys); in efi_1t1_pte() 175 pte += pmap_pte_index(va); in efi_1t1_pte() 176 KASSERT(*pte == 0, ("va %#jx *pt %#jx", va, *pte)); in efi_1t1_pte() 178 return (pte); in efi_1t1_pte() 185 pt_entry_t *pte; in efi_create_1t1_map() local 261 pte = efi_1t1_pte(va); in efi_create_1t1_map() 262 pte_store(pte, va | bits); in efi_create_1t1_map() 284 pte = efi_1t1_pte(0); in efi_create_1t1_map() 288 pte_store(pte, bits); in efi_create_1t1_map()
|
| /freebsd/sys/powerpc/ps3/ |
| H A D | mmu_ps3.c | 176 * rcbits contains the low 12 bits of each PTE's 2nd part, in mps3_pte_synch_locked() 200 struct lpte pte; in mps3_pte_clear() local 210 moea64_pte_from_pvo(pvo, &pte); in mps3_pte_clear() 212 pte.pte_lo |= refchg; in mps3_pte_clear() 213 pte.pte_lo &= ~ptebit; in mps3_pte_clear() 215 lv1_write_htab_entry(mps3_vas_id, pvo->pvo_pte.slot, pte.pte_hi, in mps3_pte_clear() 216 pte.pte_lo); in mps3_pte_clear() 246 struct lpte pte, evicted; in mps3_pte_insert() local 256 moea64_pte_from_pvo(pvo, &pte); in mps3_pte_insert() 261 pte.pte_hi, pte.pte_lo, LPTE_LOCKED | LPTE_WIRED, 0, in mps3_pte_insert() [all …]
|
| /freebsd/sys/dev/agp/ |
| H A D | agp_i810.c | 131 static void agp_i810_write_gtt(device_t dev, u_int index, uint32_t pte); 132 static void agp_i915_write_gtt(device_t dev, u_int index, uint32_t pte); 133 static void agp_i965_write_gtt(device_t dev, u_int index, uint32_t pte); 134 static void agp_g4x_write_gtt(device_t dev, u_int index, uint32_t pte); 1468 * placed into bits 40-32 of PTE. 1474 uint32_t pte; in agp_i810_install_gtt_pte() local 1476 pte = (u_int32_t)physical | I810_PTE_VALID; in agp_i810_install_gtt_pte() 1478 pte |= I810_PTE_LOCAL; in agp_i810_install_gtt_pte() 1480 pte |= I830_PTE_SYSTEM_CACHED; in agp_i810_install_gtt_pte() 1481 agp_i810_write_gtt(dev, index, pte); in agp_i810_install_gtt_pte() [all …]
|
| /freebsd/lib/libpmc/pmu-events/arch/powerpc/power9/ |
| H A D | pipeline.json | 35 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 40 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 80 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 95 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 115 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 160 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 175 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 180 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 225 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 250 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… [all …]
|
| H A D | pmc.json | 20 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 30 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 40 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 90 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 95 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 100 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include… 110 …. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are include…
|
| /freebsd/sys/i386/include/ |
| H A D | pmap_nopae.h | 80 #define pte_load_store(ptep, pte) atomic_swap_int(ptep, pte) argument 82 #define pte_store(ptep, pte) do { \ argument 83 *(u_int *)(ptep) = (u_int)(pte); \ 85 #define pte_store_zero(ptep, pte) pte_store(ptep, pte) argument
|
| H A D | pmap_pae.h | 97 #define pte_load_store(ptep, pte) atomic_swap_64_i586(ptep, pte) argument 99 #define pte_store(ptep, pte) atomic_store_rel_64_i586(ptep, pte) argument 100 #define pte_store_zero(ptep, pte) \ argument 106 *(p + 1) = (uint32_t)(pte >> 32); \ 108 *p = (uint32_t)pte; \
|
| /freebsd/sys/riscv/riscv/ |
| H A D | locore.S | 47 #include <machine/pte.h> 146 /* Get PTE attribute bits in s8 */ 155 or t4, t4, s8 /* t4 |= pte bits */ 159 /* Store L1 PTE entry to position */ 163 sd t6, (t0) /* Store new PTE */ 179 /* Store L1 PTE entry to position */ 191 or t0, t0, s8 /* t0 |= pte bits */ 195 sd t5, (s1) /* Store PTE entry to position */ 284 * T-HEAD CPUs implement an alternate scheme for PTE attributes that is 285 * incompatible with the RISC-V PTE specification (see the definitions in [all …]
|