Lines Matching defs:vaddr
296 if (this pv is for this pmap/vaddr) {
316 hash list via a hash of [pmap, vaddr]. These have been designed with the two goals of
706 pmap64_pml4(pmap_t pmap, vm_map_offset_t vaddr)
708 return ((pml4_entry_t *)pmap->pm_hold + ((vm_offset_t)((vaddr>>PML4SHIFT)&(NPML4PG-1))));
716 pmap64_pdpt(pmap_t pmap, vm_map_offset_t vaddr)
724 if ((vaddr > 0x00007FFFFFFFFFFFULL) && (vaddr < 0xFFFF800000000000ULL)) {
728 pml4 = pmap64_pml4(pmap, vaddr);
738 ((vm_offset_t)((vaddr>>PDPTSHIFT)&(NPDPTPG-1))));
750 ((vm_offset_t)((vaddr>>PDPTSHIFT)&(NPDPTPG-1))));
761 pmap64_pde(pmap_t pmap, vm_map_offset_t vaddr)
769 if ((vaddr > 0x00007FFFFFFFFFFFULL) && (vaddr < 0xFFFF800000000000ULL)) {
773 /* if (vaddr & (1ULL << 63)) panic("neg addr");*/
774 pdpt = pmap64_pdpt(pmap, vaddr);
783 ((vm_offset_t)((vaddr>>PDSHIFT)&(NPDPG-1))));
795 ((vm_offset_t)((vaddr>>PDSHIFT)&(NPDPG-1))));
804 * one of the pte mapping routines (e.g. pmap_pte()) as the returned vaddr
808 * vaddr for the returned pte can no longer be used
813 * return address of mapped pte for vaddr va in pmap pmap.
825 pmap_pte(pmap_t pmap, vm_map_offset_t vaddr)
832 pde = pmap_pde(pmap,vaddr);
836 return (vtopte(vaddr)); /* compat kernel still has pte's mapped */
848 ((vm_offset_t)i386_btop(vaddr) & (NPTEPG-1)));
860 ((vm_offset_t)i386_btop(vaddr) & (NPTEPG-1)));
1365 vm_map_offset_t vaddr;
1452 vaddr = (vm_map_offset_t)0;
1457 pv_e->va = vaddr;
1458 vaddr += PAGE_SIZE;
1934 vm_map_offset_t vaddr;
1955 for (cpte = spte, vaddr = start_vaddr;
1957 cpte++, vaddr += PAGE_SIZE_64) {
1989 PMAP_UPDATE_TLBS(pmap, start_vaddr, vaddr);
1991 for (cpte = spte, vaddr = start_vaddr;
1993 cpte++, vaddr += PAGE_SIZE_64) {
2035 if (pv_h->va == vaddr && pv_h->pmap == pmap) { /* rooted or not */
2068 pvhash_idx = pvhashidx(pmap,vaddr);
2079 if (pvh_e->pmap == pmap && pvh_e->va == vaddr && pvh_e->ppn == ppn) break;
2319 register vm_map_offset_t vaddr;
2322 vaddr = pv_e->va;
2323 pte = pmap_pte(pmap, vaddr);
2326 kprintf("pmap_page_protect pmap %p pn 0x%x vaddr 0x%llx\n",pmap, pn, vaddr);
2342 PMAP_UPDATE_TLBS(pmap, vaddr, vaddr + PAGE_SIZE);
2388 PMAP_UPDATE_TLBS(pmap, vaddr, vaddr + PAGE_SIZE);
2566 vm_map_offset_t vaddr,
2591 printf("pmap(%qx, %x)\n", vaddr, pn);
2599 (int) (vaddr>>32), (int) vaddr,
2627 while ((pte = pmap_pte(pmap, vaddr)) == PT_ENTRY_NULL) {
2632 pmap_expand(pmap, vaddr); /* going to grow pde level page(s) */
2729 PMAP_UPDATE_TLBS(pmap, vaddr, vaddr + PAGE_SIZE);
2769 if (pv_h->va == vaddr && pv_h->pmap == pmap) {
2797 pvhash_idx = pvhashidx(pmap,vaddr);
2808 if (pvh_e->pmap == pmap && pvh_e->va == vaddr && pvh_e->ppn == old_ppn) break;
2860 pv_h->va = vaddr;
2891 pvh_e->va = vaddr;
2895 pvhash_idx = pvhashidx(pmap,vaddr);
2960 PMAP_UPDATE_TLBS(pmap, vaddr, vaddr + PAGE_SIZE);
2984 vm_map_offset_t vaddr,
2995 if ((pte = pmap_pte(map, vaddr)) == PT_ENTRY_NULL)
3049 vm_map_offset_t vaddr)
3055 ppn = pmap_find_phys(pmap, vaddr);
3058 paddr = ((vm_offset_t)i386_ptob(ppn)) | (vaddr & INTEL_OFFMASK);
3066 vm_map_offset_t vaddr)
3078 pml4p = pmap64_pml4(map, vaddr);
3094 i = pml4idx(map, vaddr);
3113 if (pmap64_pdpt(map, vaddr) != PDPT_ENTRY_NULL) {
3127 panic("pmap_expand_pml4: obj not empty, pmap %p pm_obj %p vaddr 0x%llx i 0x%llx\n",
3128 map, map->pm_obj_pml4, vaddr, i);
3137 pml4p = pmap64_pml4(map, vaddr); /* refetch under lock */
3153 vm_map_offset_t vaddr)
3165 while ((pdptp = pmap64_pdpt(map, vaddr)) == PDPT_ENTRY_NULL) {
3167 pmap_expand_pml4(map, vaddr); /* need room for another pdpt entry */
3184 i = pdptidx(map, vaddr);
3203 if (pmap64_pde(map, vaddr) != PD_ENTRY_NULL) {
3217 panic("pmap_expand_pdpt: obj not empty, pmap %p pm_obj %p vaddr 0x%llx i 0x%llx\n",
3218 map, map->pm_obj_pdpt, vaddr, i);
3227 pdptp = pmap64_pdpt(map, vaddr); /* refetch under lock */
3260 vm_map_offset_t vaddr)
3276 while ((pdp = pmap64_pde(map, vaddr)) == PD_ENTRY_NULL) {
3278 pmap_expand_pdpt(map, vaddr); /* need room for another pde entry */
3296 i = pdeidx(map, vaddr);
3316 if (pmap_pte(map, vaddr) != PT_ENTRY_NULL) {
3330 panic("pmap_expand: obj not empty, pmap 0x%x pm_obj 0x%x vaddr 0x%llx i 0x%llx\n",
3331 map, map->pm_obj, vaddr, i);
3341 pdp = pmap_pde(map, vaddr);
3927 vm_offset_t vaddr)
3929 db_printf("0x%qx", kvtophys(vaddr));
4300 vm_map_offset_t vaddr, nvaddr;
4336 vaddr = (vm_map_offset_t)vstart;
4348 pde = pmap_pde(grand, vaddr);
4355 pmap_expand_pdpt(grand, vaddr);
4357 pde = pmap_pde(grand, vaddr);
4361 panic("pmap_nest: no pde, grand %p vaddr 0x%llx", grand, vaddr);
4362 vaddr += NBPDE;
4377 * kern_return_t pmap_unnest(grand, vaddr)
4380 * vaddr = start of range in pmap to be unnested
4387 kern_return_t pmap_unnest(pmap_t grand, addr64_t vaddr, uint64_t size) {
4396 (int) (vaddr>>32), (int) vaddr, 0, 0);
4399 (vaddr & (pmap_nesting_size_min-1))) {
4401 grand, vaddr, size);
4405 vstart = vaddr & ~(NBPDE-1);
4406 vend = (vaddr + size + NBPDE - 1) & ~(NBPDE-1);
4411 // invalidate all pdes for segment at vaddr in pmap grand
4415 vaddr = vstart;
4417 pde = pmap_pde(grand, (vm_map_offset_t)vaddr);
4418 if (pde == 0) panic("pmap_unnest: no pde, grand %p vaddr 0x%llx\n", grand, vaddr);
4420 vaddr += NBPDE;
4484 vm_offset_t vaddr;
4487 vaddr = (vm_offset_t)pmap_index_to_virt(HIGH_FIXED_CPUS_BEGIN + a);
4491 invlpg((uintptr_t)vaddr);
4493 return vaddr;