Lines Matching refs:kd

69 _kvm_maphdrs(kvm_t *kd, size_t sz)
71 struct vmstate *vm = kd->vmst;
80 vm->mmapbase = mmap(NULL, sz, PROT_READ, MAP_PRIVATE, kd->pmfd, 0);
82 _kvm_err(kd, kd->program, "cannot mmap corefile");
93 _kvm_pa2off(kvm_t *kd, uint64_t pa, off_t *ofs, size_t pgsz)
95 Elf32_Ehdr *e = kd->vmst->mmapbase;
111 _kvm_freevtop(kvm_t *kd)
113 if (kd->vmst != 0) {
114 if (kd->vmst->minidump)
115 return (_kvm_minidump_freevtop(kd));
116 if (kd->vmst->mmapbase != NULL)
117 munmap(kd->vmst->mmapbase, kd->vmst->mmapsize);
118 free(kd->vmst);
119 kd->vmst = NULL;
124 _kvm_initvtop(kvm_t *kd)
136 if (!kd->rawdump) {
137 if (pread(kd->pmfd, &minihdr, 8, 0) == 8) {
139 return (_kvm_minidump_initvtop(kd));
141 _kvm_err(kd, kd->program, "cannot read header");
146 vm = _kvm_malloc(kd, sizeof(*vm));
148 _kvm_err(kd, kd->program, "cannot allocate vm");
151 kd->vmst = vm;
153 if (_kvm_maphdrs(kd, sizeof(Elf32_Ehdr)) == -1)
155 ehdr = kd->vmst->mmapbase;
157 if (_kvm_maphdrs(kd, hdrsz) == -1)
174 if (kvm_nlist(kd, nl) != 0)
180 if (kvm_nlist(kd, nl) != 0) {
181 _kvm_err(kd, kd->program, "couldn't get phys addr");
187 if (kvm_nlist(kd, nl) != 0) {
188 _kvm_err(kd, kd->program, "bad namelist");
191 if (kvm_read(kd, (nl[0].n_value - kernbase + physaddr), &pa,
193 _kvm_err(kd, kd->program, "cannot read kernel_l1pa");
196 l1pt = _kvm_malloc(kd, L1_TABLE_SIZE);
197 if (kvm_read(kd, pa, l1pt, L1_TABLE_SIZE) != L1_TABLE_SIZE) {
198 _kvm_err(kd, kd->program, "cannot read l1pt");
222 _kvm_kvatop(kvm_t *kd, u_long va, off_t *pa)
224 struct vmstate *vm = kd->vmst;
229 if (kd->vmst->minidump)
230 return (_kvm_minidump_kvatop(kd, va, pa));
233 return (_kvm_pa2off(kd, va, pa, PAGE_SIZE));
240 return (_kvm_pa2off(kd, *pa, pa, L1_S_SIZE));
243 _kvm_pa2off(kd, pte_pa, (off_t *)&pte_pa, L1_S_SIZE);
244 if (lseek(kd->pmfd, pte_pa, 0) == -1) {
245 _kvm_syserr(kd, kd->program, "_kvm_kvatop: lseek");
248 if (read(kd->pmfd, &pte, sizeof(pte)) != sizeof (pte)) {
249 _kvm_syserr(kd, kd->program, "_kvm_kvatop: read");
257 return (_kvm_pa2off(kd, *pa, pa, L2_L_SIZE));
260 return (_kvm_pa2off(kd, *pa, pa, PAGE_SIZE));
262 _kvm_err(kd, 0, "Invalid address (%lx)", va);
273 _kvm_mdopen(kvm_t *kd)
276 kd->usrstack = USRSTACK;
277 kd->min_uva = VM_MIN_ADDRESS;
278 kd->max_uva = VM_MAXUSER_ADDRESS;