Lines Matching refs:kd

66 _kvm_pa2off(kvm_t *kd, uint64_t pa, off_t *ofs)  in _kvm_pa2off()  argument
68 struct vmstate *vm = kd->vmst; in _kvm_pa2off()
72 if (kd->rawdump) { in _kvm_pa2off()
88 _amd64_freevtop(kvm_t *kd) in _amd64_freevtop() argument
90 struct vmstate *vm = kd->vmst; in _amd64_freevtop()
96 kd->vmst = NULL; in _amd64_freevtop()
100 _amd64_probe(kvm_t *kd) in _amd64_probe() argument
103 return (_kvm_probe_elf_kernel(kd, ELFCLASS64, EM_X86_64) && in _amd64_probe()
104 !_kvm_is_minidump(kd)); in _amd64_probe()
108 _amd64_initvtop(kvm_t *kd) in _amd64_initvtop() argument
115 kd->vmst = (struct vmstate *)_kvm_malloc(kd, sizeof(*kd->vmst)); in _amd64_initvtop()
116 if (kd->vmst == NULL) { in _amd64_initvtop()
117 _kvm_err(kd, kd->program, "cannot allocate vm"); in _amd64_initvtop()
120 kd->vmst->PML4 = 0; in _amd64_initvtop()
122 if (kd->rawdump == 0) { in _amd64_initvtop()
123 if (_kvm_read_core_phdrs(kd, &kd->vmst->phnum, in _amd64_initvtop()
124 &kd->vmst->phdr) == -1) in _amd64_initvtop()
131 if (kvm_nlist2(kd, nl) != 0) { in _amd64_initvtop()
132 _kvm_err(kd, kd->program, "bad namelist - no kernbase"); in _amd64_initvtop()
140 if (kvm_nlist2(kd, nl) != 0) { in _amd64_initvtop()
141 _kvm_err(kd, kd->program, "bad namelist - no KPML4phys"); in _amd64_initvtop()
144 if (kvm_read2(kd, (nl[0].n_value - kernbase), &pa, sizeof(pa)) != in _amd64_initvtop()
146 _kvm_err(kd, kd->program, "cannot read KPML4phys"); in _amd64_initvtop()
150 PML4 = _kvm_malloc(kd, AMD64_PAGE_SIZE); in _amd64_initvtop()
152 _kvm_err(kd, kd->program, "cannot allocate PML4"); in _amd64_initvtop()
155 if (kvm_read2(kd, pa, PML4, AMD64_PAGE_SIZE) != AMD64_PAGE_SIZE) { in _amd64_initvtop()
156 _kvm_err(kd, kd->program, "cannot read KPML4phys"); in _amd64_initvtop()
160 kd->vmst->PML4 = PML4; in _amd64_initvtop()
165 _amd64_vatop(kvm_t *kd, kvaddr_t va, off_t *pa) in _amd64_vatop() argument
184 vm = kd->vmst; in _amd64_vatop()
192 s = _kvm_pa2off(kd, va, pa); in _amd64_vatop()
194 _kvm_err(kd, kd->program, in _amd64_vatop()
204 _kvm_err(kd, kd->program, "_amd64_vatop: pml4e not valid"); in _amd64_vatop()
211 s = _kvm_pa2off(kd, pdpe_pa, &ofs); in _amd64_vatop()
213 _kvm_err(kd, kd->program, "_amd64_vatop: pdpe_pa not found"); in _amd64_vatop()
216 if (pread(kd->pmfd, &pdpe, sizeof(pdpe), ofs) != sizeof(pdpe)) { in _amd64_vatop()
217 _kvm_syserr(kd, kd->program, "_amd64_vatop: read pdpe"); in _amd64_vatop()
222 _kvm_err(kd, kd->program, "_amd64_vatop: pdpe not valid"); in _amd64_vatop()
231 s = _kvm_pa2off(kd, a, pa); in _amd64_vatop()
233 _kvm_err(kd, kd->program, in _amd64_vatop()
243 s = _kvm_pa2off(kd, pde_pa, &ofs); in _amd64_vatop()
245 _kvm_syserr(kd, kd->program, "_amd64_vatop: pde_pa not found"); in _amd64_vatop()
248 if (pread(kd->pmfd, &pde, sizeof(pde), ofs) != sizeof(pde)) { in _amd64_vatop()
249 _kvm_syserr(kd, kd->program, "_amd64_vatop: read pde"); in _amd64_vatop()
254 _kvm_err(kd, kd->program, "_amd64_vatop: pde not valid"); in _amd64_vatop()
263 s = _kvm_pa2off(kd, a, pa); in _amd64_vatop()
265 _kvm_err(kd, kd->program, in _amd64_vatop()
275 s = _kvm_pa2off(kd, pte_pa, &ofs); in _amd64_vatop()
277 _kvm_err(kd, kd->program, "_amd64_vatop: pte_pa not found"); in _amd64_vatop()
280 if (pread(kd->pmfd, &pte, sizeof(pte), ofs) != sizeof(pte)) { in _amd64_vatop()
281 _kvm_syserr(kd, kd->program, "_amd64_vatop: read"); in _amd64_vatop()
285 _kvm_err(kd, kd->program, "_amd64_vatop: pte not valid"); in _amd64_vatop()
290 s = _kvm_pa2off(kd, a, pa); in _amd64_vatop()
292 _kvm_err(kd, kd->program, "_amd64_vatop: address not in dump"); in _amd64_vatop()
298 _kvm_err(kd, 0, "invalid address (0x%jx)", (uintmax_t)va); in _amd64_vatop()
303 _amd64_kvatop(kvm_t *kd, kvaddr_t va, off_t *pa) in _amd64_kvatop() argument
306 if (ISALIVE(kd)) { in _amd64_kvatop()
307 _kvm_err(kd, 0, "kvm_kvatop called in live kernel!"); in _amd64_kvatop()
310 return (_amd64_vatop(kd, va, pa)); in _amd64_kvatop()
314 _amd64_native(kvm_t *kd __unused) in _amd64_native()