Lines Matching refs:kd
53 valid_elf_header(kvm_t *kd, Elf64_Ehdr *eh) in valid_elf_header() argument
67 if (_kvm16toh(kd, eh->e_type) != ET_CORE) in valid_elf_header()
69 if (_kvm16toh(kd, eh->e_machine) != EM_PPC64) in valid_elf_header()
94 powerpc_maphdrs(kvm_t *kd) in powerpc_maphdrs() argument
99 vm = kd->vmst; in powerpc_maphdrs()
102 vm->map = mmap(NULL, vm->mapsz, PROT_READ, MAP_PRIVATE, kd->pmfd, 0); in powerpc_maphdrs()
104 _kvm_err(kd, kd->program, "cannot map corefile"); in powerpc_maphdrs()
109 if (!valid_elf_header(kd, vm->eh)) { in powerpc_maphdrs()
120 if (!valid_elf_header(kd, vm->eh)) in powerpc_maphdrs()
123 mapsz = _kvm16toh(kd, vm->eh->e_phentsize) * in powerpc_maphdrs()
124 _kvm16toh(kd, vm->eh->e_phnum) + _kvm64toh(kd, vm->eh->e_phoff); in powerpc_maphdrs()
129 vm->map = mmap(NULL, vm->mapsz, PROT_READ, MAP_PRIVATE, kd->pmfd, 0); in powerpc_maphdrs()
131 _kvm_err(kd, kd->program, "cannot map corefile headers"); in powerpc_maphdrs()
136 (uintptr_t)_kvm64toh(kd, vm->eh->e_phoff)); in powerpc_maphdrs()
140 _kvm_err(kd, kd->program, "invalid corefile"); in powerpc_maphdrs()
150 powerpc64_va2off(kvm_t *kd, kvaddr_t va, off_t *ofs) in powerpc64_va2off() argument
152 struct vmstate *vm = kd->vmst; in powerpc64_va2off()
157 nph = _kvm16toh(kd, vm->eh->e_phnum); in powerpc64_va2off()
158 while (nph && (va < _kvm64toh(kd, ph->p_vaddr) || in powerpc64_va2off()
159 va >= _kvm64toh(kd, ph->p_vaddr) + _kvm64toh(kd, ph->p_memsz))) { in powerpc64_va2off()
162 _kvm16toh(kd, vm->eh->e_phentsize)); in powerpc64_va2off()
168 *ofs = vm->dmphdrsz + _kvm64toh(kd, ph->p_offset) + in powerpc64_va2off()
169 (va - _kvm64toh(kd, ph->p_vaddr)); in powerpc64_va2off()
170 return (_kvm64toh(kd, ph->p_memsz) - in powerpc64_va2off()
171 (va - _kvm64toh(kd, ph->p_vaddr))); in powerpc64_va2off()
175 _powerpc64_freevtop(kvm_t *kd) in _powerpc64_freevtop() argument
177 struct vmstate *vm = kd->vmst; in _powerpc64_freevtop()
182 kd->vmst = NULL; in _powerpc64_freevtop()
186 _powerpc64_probe(kvm_t *kd) in _powerpc64_probe() argument
189 return (_kvm_probe_elf_kernel(kd, ELFCLASS64, EM_PPC64) && in _powerpc64_probe()
190 kd->nlehdr.e_ident[EI_DATA] == ELFDATA2MSB); in _powerpc64_probe()
194 _powerpc64le_probe(kvm_t *kd) in _powerpc64le_probe() argument
197 return (_kvm_probe_elf_kernel(kd, ELFCLASS64, EM_PPC64) && in _powerpc64le_probe()
198 kd->nlehdr.e_ident[EI_DATA] == ELFDATA2LSB); in _powerpc64le_probe()
202 _powerpc64_initvtop(kvm_t *kd) in _powerpc64_initvtop() argument
205 kd->vmst = (struct vmstate *)_kvm_malloc(kd, sizeof(*kd->vmst)); in _powerpc64_initvtop()
206 if (kd->vmst == NULL) in _powerpc64_initvtop()
209 if (powerpc_maphdrs(kd) == -1) in _powerpc64_initvtop()
216 _powerpc64_kvatop(kvm_t *kd, kvaddr_t va, off_t *ofs) in _powerpc64_kvatop() argument
220 vm = kd->vmst; in _powerpc64_kvatop()
221 if (_kvm64toh(kd, vm->ph->p_paddr) == 0xffffffffffffffff) in _powerpc64_kvatop()
222 return ((int)powerpc64_va2off(kd, va, ofs)); in _powerpc64_kvatop()
224 _kvm_err(kd, kd->program, "Raw corefile not supported"); in _powerpc64_kvatop()
229 _powerpc64_native(kvm_t *kd __unused) in _powerpc64_native()
240 _powerpc64le_native(kvm_t *kd __unused) in _powerpc64le_native()