Lines Matching refs:kd
71 _kvm_pa2off(kvm_t *kd, uint64_t pa, off_t *ofs) in _kvm_pa2off() argument
73 struct vmstate *vm = kd->vmst; in _kvm_pa2off()
77 if (kd->rawdump) { in _kvm_pa2off()
93 _i386_freevtop(kvm_t *kd) in _i386_freevtop() argument
95 struct vmstate *vm = kd->vmst; in _i386_freevtop()
101 kd->vmst = NULL; in _i386_freevtop()
105 _i386_probe(kvm_t *kd) in _i386_probe() argument
108 return (_kvm_probe_elf_kernel(kd, ELFCLASS32, EM_386) && in _i386_probe()
109 !_kvm_is_minidump(kd)); in _i386_probe()
113 _i386_initvtop(kvm_t *kd) in _i386_initvtop() argument
121 kd->vmst = (struct vmstate *)_kvm_malloc(kd, sizeof(struct vmstate)); in _i386_initvtop()
122 if (kd->vmst == NULL) { in _i386_initvtop()
123 _kvm_err(kd, kd->program, "cannot allocate vm"); in _i386_initvtop()
126 kd->vmst->PTD = 0; in _i386_initvtop()
128 if (kd->rawdump == 0) { in _i386_initvtop()
129 if (_kvm_read_core_phdrs(kd, &kd->vmst->phnum, in _i386_initvtop()
130 &kd->vmst->phdr) == -1) in _i386_initvtop()
137 if (kvm_nlist2(kd, nl) != 0) { in _i386_initvtop()
141 _kvm_err(kd, kd->program, "cannot resolve kernbase"); in _i386_initvtop()
150 if (kvm_nlist2(kd, nl) == 0) { in _i386_initvtop()
153 if (kvm_read2(kd, (nl[0].n_value - kernbase), &pa, in _i386_initvtop()
155 _kvm_err(kd, kd->program, "cannot read IdlePDPT"); in _i386_initvtop()
159 PTD = _kvm_malloc(kd, 4 * I386_PAGE_SIZE); in _i386_initvtop()
161 _kvm_err(kd, kd->program, "cannot allocate PTD"); in _i386_initvtop()
165 if (kvm_read2(kd, pa + (i * sizeof(pa64)), &pa64, in _i386_initvtop()
167 _kvm_err(kd, kd->program, "Cannot read PDPT"); in _i386_initvtop()
172 if (kvm_read2(kd, pa64 & I386_PG_FRAME_PAE, in _i386_initvtop()
175 _kvm_err(kd, kd->program, "cannot read PDPT"); in _i386_initvtop()
180 kd->vmst->PTD = PTD; in _i386_initvtop()
181 kd->vmst->pae = 1; in _i386_initvtop()
186 if (kvm_nlist2(kd, nl) != 0) { in _i386_initvtop()
187 _kvm_err(kd, kd->program, "bad namelist"); in _i386_initvtop()
190 if (kvm_read2(kd, (nl[0].n_value - kernbase), &pa, in _i386_initvtop()
192 _kvm_err(kd, kd->program, "cannot read IdlePTD"); in _i386_initvtop()
196 PTD = _kvm_malloc(kd, I386_PAGE_SIZE); in _i386_initvtop()
198 _kvm_err(kd, kd->program, "cannot allocate PTD"); in _i386_initvtop()
201 if (kvm_read2(kd, pa, PTD, I386_PAGE_SIZE) != I386_PAGE_SIZE) { in _i386_initvtop()
202 _kvm_err(kd, kd->program, "cannot read PTD"); in _i386_initvtop()
205 kd->vmst->PTD = PTD; in _i386_initvtop()
206 kd->vmst->pae = 0; in _i386_initvtop()
212 _i386_vatop(kvm_t *kd, kvaddr_t va, off_t *pa) in _i386_vatop() argument
226 vm = kd->vmst; in _i386_vatop()
235 s = _kvm_pa2off(kd, va, pa); in _i386_vatop()
237 _kvm_err(kd, kd->program, in _i386_vatop()
247 _kvm_err(kd, kd->program, "_i386_vatop: pde not valid"); in _i386_vatop()
259 s = _kvm_pa2off(kd, a, pa); in _i386_vatop()
261 _kvm_err(kd, kd->program, in _i386_vatop()
271 s = _kvm_pa2off(kd, pte_pa, &ofs); in _i386_vatop()
273 _kvm_err(kd, kd->program, "_i386_vatop: pte_pa not found"); in _i386_vatop()
278 if (pread(kd->pmfd, &pte, sizeof(pte), ofs) != sizeof(pte)) { in _i386_vatop()
279 _kvm_syserr(kd, kd->program, "_i386_vatop: pread"); in _i386_vatop()
284 _kvm_err(kd, kd->program, "_kvm_kvatop: pte not valid"); in _i386_vatop()
289 s = _kvm_pa2off(kd, a, pa); in _i386_vatop()
291 _kvm_err(kd, kd->program, "_i386_vatop: address not in dump"); in _i386_vatop()
297 _kvm_err(kd, 0, "invalid address (0x%jx)", (uintmax_t)va); in _i386_vatop()
302 _i386_vatop_pae(kvm_t *kd, kvaddr_t va, off_t *pa) in _i386_vatop_pae() argument
316 vm = kd->vmst; in _i386_vatop_pae()
325 s = _kvm_pa2off(kd, va, pa); in _i386_vatop_pae()
327 _kvm_err(kd, kd->program, in _i386_vatop_pae()
337 _kvm_err(kd, kd->program, "_kvm_kvatop_pae: pde not valid"); in _i386_vatop_pae()
349 s = _kvm_pa2off(kd, a, pa); in _i386_vatop_pae()
351 _kvm_err(kd, kd->program, in _i386_vatop_pae()
361 s = _kvm_pa2off(kd, pte_pa, &ofs); in _i386_vatop_pae()
363 _kvm_err(kd, kd->program, "_i386_vatop_pae: pdpe_pa not found"); in _i386_vatop_pae()
368 if (pread(kd->pmfd, &pte, sizeof(pte), ofs) != sizeof(pte)) { in _i386_vatop_pae()
369 _kvm_syserr(kd, kd->program, "_i386_vatop_pae: read"); in _i386_vatop_pae()
374 _kvm_err(kd, kd->program, "_i386_vatop_pae: pte not valid"); in _i386_vatop_pae()
379 s = _kvm_pa2off(kd, a, pa); in _i386_vatop_pae()
381 _kvm_err(kd, kd->program, in _i386_vatop_pae()
388 _kvm_err(kd, 0, "invalid address (0x%jx)", (uintmax_t)va); in _i386_vatop_pae()
393 _i386_kvatop(kvm_t *kd, kvaddr_t va, off_t *pa) in _i386_kvatop() argument
396 if (ISALIVE(kd)) { in _i386_kvatop()
397 _kvm_err(kd, 0, "vatop called in live kernel!"); in _i386_kvatop()
400 if (kd->vmst->pae) in _i386_kvatop()
401 return (_i386_vatop_pae(kd, va, pa)); in _i386_kvatop()
403 return (_i386_vatop(kd, va, pa)); in _i386_kvatop()
407 _i386_native(kvm_t *kd __unused) in _i386_native()