Clean up a bit.

This commit is contained in:
mycroft 1996-03-08 10:45:16 +00:00
parent aca94000ae
commit bd267b1b3c
1 changed files with 27 additions and 17 deletions

View File

@ -37,7 +37,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
/* from: static char sccsid[] = "@(#)kvm_hp300.c 8.1 (Berkeley) 6/4/93"; */
static char *rcsid = "$Id: kvm_i386.c,v 1.7 1995/06/29 11:41:45 cgd Exp $";
static char *rcsid = "$Id: kvm_i386.c,v 1.8 1996/03/08 10:45:16 mycroft Exp $";
#endif /* LIBC_SCCS and not lint */
/*
@ -70,13 +70,9 @@ static char *rcsid = "$Id: kvm_i386.c,v 1.7 1995/06/29 11:41:45 cgd Exp $";
#endif
struct vmstate {
pd_entry_t **PTDpaddr;
pd_entry_t *PTD;
};
#define KREAD(kd, addr, p)\
(kvm_read(kd, addr, (char *)(p), sizeof(*(p))) != sizeof(*(p)))
void
_kvm_freevtop(kd)
kvm_t *kd;
@ -95,7 +91,7 @@ _kvm_initvtop(kd)
{
struct vmstate *vm;
struct nlist nlist[2];
pt_entry_t *tmpPTD;
u_long pa;
vm = (struct vmstate *)_kvm_malloc(kd, sizeof(*vm));
if (vm == 0)
@ -110,21 +106,35 @@ _kvm_initvtop(kd)
return (-1);
}
vm->PTDpaddr = 0;
vm->PTD = 0;
if (KREAD(kd, (u_long)nlist[0].n_value - KERNBASE, &vm->PTDpaddr)) {
_kvm_err(kd, kd->program, "cannot read PTDpaddr");
return (-1);
if (lseek(kd->pmfd, (off_t)(nlist[0].n_value - KERNBASE), 0) == -1 &&
errno != 0) {
_kvm_syserr(kd, kd->program, "kvm_lseek");
goto invalid;
}
if (read(kd->pmfd, &pa, sizeof pa) != sizeof pa) {
_kvm_syserr(kd, kd->program, "kvm_read");
goto invalid;
}
tmpPTD = (pd_entry_t *)_kvm_malloc(kd, NBPG);
if ((kvm_read(kd, (u_long)vm->PTDpaddr, tmpPTD, NBPG)) != NBPG) {
free(tmpPTD);
_kvm_err(kd, kd->program, "cannot read PTD");
return (-1);
vm->PTD = (pd_entry_t *)_kvm_malloc(kd, NBPG);
if (lseek(kd->pmfd, (off_t)pa, 0) == -1 && errno != 0) {
_kvm_syserr(kd, kd->program, "kvm_lseek");
goto invalid;
}
vm->PTD = tmpPTD;
if (read(kd->pmfd, vm->PTD, NBPG) != NBPG) {
_kvm_syserr(kd, kd->program, "kvm_read");
goto invalid;
}
return (0);
invalid:
if (vm->PTD != 0)
free(vm->PTD);
return (-1);
}
/*
@ -165,7 +175,7 @@ _kvm_kvatop(kd, va, pa)
/* XXX READ PHYSICAL XXX */
{
if (lseek(kd->pmfd, (off_t)pte_pa, 0) == -1 && errno != 0) {
_kvm_syserr(kd, 0, "kvm_lseek");
_kvm_syserr(kd, kd->program, "kvm_lseek");
goto invalid;
}
if (read(kd->pmfd, &pte, sizeof pte) != sizeof pte) {