diff options
author | 1996-05-05 14:56:34 +0000 | |
---|---|---|
committer | 1996-05-05 14:56:34 +0000 | |
commit | 15f0ebb07559326692b6c475dd1bc53c9862ac8e (patch) | |
tree | e9389ddbb06e43460301bc2d6eef509d38723d42 /lib/libkvm/kvm.c | |
parent | add general ether_ioctl call in net/if_ethersubr.c, (diff) | |
download | wireguard-openbsd-15f0ebb07559326692b6c475dd1bc53c9862ac8e.tar.xz wireguard-openbsd-15f0ebb07559326692b6c475dd1bc53c9862ac8e.zip |
sync with 0430
Diffstat (limited to 'lib/libkvm/kvm.c')
-rw-r--r-- | lib/libkvm/kvm.c | 71 |
1 files changed, 36 insertions, 35 deletions
diff --git a/lib/libkvm/kvm.c b/lib/libkvm/kvm.c index 0126e54a178..0ff1e73c39c 100644 --- a/lib/libkvm/kvm.c +++ b/lib/libkvm/kvm.c @@ -1,4 +1,5 @@ -/* $OpenBSD: kvm.c,v 1.2 1996/03/19 23:15:22 niklas Exp $ */ +/* $OpenBSD: kvm.c,v 1.3 1996/05/05 14:56:42 deraadt Exp $ */ +/* $NetBSD: kvm.c,v 1.42 1996/03/18 22:33:13 thorpej Exp $ */ /*- * Copyright (c) 1989, 1992, 1993 @@ -38,7 +39,11 @@ */ #if defined(LIBC_SCCS) && !defined(lint) +#if 0 static char sccsid[] = "@(#)kvm.c 8.2 (Berkeley) 2/13/94"; +#else +static char *rcsid = "$OpenBSD: kvm.c,v 1.3 1996/05/05 14:56:42 deraadt Exp $"; +#endif #endif /* LIBC_SCCS and not lint */ #include <sys/param.h> @@ -62,7 +67,6 @@ static char sccsid[] = "@(#)kvm.c 8.2 (Berkeley) 2/13/94"; #include <ctype.h> #include <db.h> #include <fcntl.h> -#include <kvm.h> #include <limits.h> #include <nlist.h> #include <paths.h> @@ -70,6 +74,7 @@ static char sccsid[] = "@(#)kvm.c 8.2 (Berkeley) 2/13/94"; #include <stdlib.h> #include <string.h> #include <unistd.h> +#include <kvm.h> #include "kvm_private.h" @@ -426,8 +431,8 @@ _kvm_pa2off(kd, pa) } int -kvm_dump_mkheader(kd_live, kd_dump, dump_off) -kvm_t *kd_live, *kd_dump; +kvm_dump_mkheader(kd, dump_off) +kvm_t *kd; off_t dump_off; { kcore_hdr_t kch; @@ -436,74 +441,70 @@ off_t dump_off; int hdr_size; hdr_size = 0; - if (kd_dump->kcore_hdr != NULL) { - _kvm_err(kd_dump, kd_dump->program, "already has a dump header"); + if (kd->kcore_hdr != NULL) { + _kvm_err(kd, kd->program, "already has a dump header"); return (-1); } - if (!ISALIVE(kd_live) || ISALIVE(kd_dump)) { - _kvm_err(kd_live, kd_live->program, "wrong arguments"); + if (ISALIVE(kd)) { + _kvm_err(kd, kd->program, "don't use on live kernel"); return (-1); } /* * Check for new format crash dump */ - if (Lseek(kd_dump, kd_dump->pmfd, dump_off, SEEK_SET) == -1) + if (Lseek(kd, kd->pmfd, dump_off, SEEK_SET) == -1) return (-1); - if (Read(kd_dump, kd_dump->pmfd, &kseg, sizeof(kseg)) != sizeof(kseg)) + if (Read(kd, kd->pmfd, &kseg, sizeof(kseg)) != sizeof(kseg)) return (-1); if ((CORE_GETMAGIC(kseg) == KCORE_MAGIC) && ((CORE_GETMID(kseg) == MID_MACHINE))) { hdr_size += ALIGN(sizeof(kcore_seg_t)); - if (Lseek(kd_dump, kd_dump->pmfd, dump_off+hdr_size, SEEK_SET) - == -1) + if (Lseek(kd, kd->pmfd, dump_off+hdr_size, SEEK_SET) == -1) return (-1); - if (Read(kd_dump, kd_dump->pmfd, &ckhdr, sizeof(ckhdr)) - != sizeof(ckhdr)) + if (Read(kd, kd->pmfd, &ckhdr, sizeof(ckhdr)) != sizeof(ckhdr)) return (-1); hdr_size += kseg.c_size; - if (Lseek(kd_dump, kd_dump->pmfd, dump_off+hdr_size, SEEK_SET) - == -1) + if (Lseek(kd, kd->pmfd, dump_off+hdr_size, SEEK_SET) == -1) return (-1); - kd_dump->cpu_hdr = (cpu_kcore_hdr_t *) - _kvm_malloc(kd_dump, sizeof(cpu_kcore_hdr_t)); - *kd_dump->cpu_hdr = ckhdr; + kd->cpu_hdr = (cpu_kcore_hdr_t *) + _kvm_malloc(kd, sizeof(cpu_kcore_hdr_t)); + *kd->cpu_hdr = ckhdr; } /* * Create a kcore_hdr. */ - kd_dump->kcore_hdr = (kcore_hdr_t *) - _kvm_malloc(kd_dump, sizeof(kcore_hdr_t)); - if (kd_dump->kcore_hdr == NULL) { - if (kd_dump->cpu_hdr != NULL) { - free((void *)kd_dump->cpu_hdr); - kd_dump->cpu_hdr = NULL; + kd->kcore_hdr = (kcore_hdr_t *) _kvm_malloc(kd, sizeof(kcore_hdr_t)); + if (kd->kcore_hdr == NULL) { + if (kd->cpu_hdr != NULL) { + free((void *)kd->cpu_hdr); + kd->cpu_hdr = NULL; } return (-1); } - kd_dump->kcore_hdr->c_hdrsize = ALIGN(sizeof(kcore_hdr_t)); - kd_dump->kcore_hdr->c_seghdrsize = ALIGN(sizeof(kcore_seg_t)); - kd_dump->kcore_hdr->c_nseg = 2; - CORE_SETMAGIC(*(kd_dump->kcore_hdr), KCORE_MAGIC, MID_MACHINE,0); + kd->kcore_hdr->c_hdrsize = ALIGN(sizeof(kcore_hdr_t)); + kd->kcore_hdr->c_seghdrsize = ALIGN(sizeof(kcore_seg_t)); + kd->kcore_hdr->c_nseg = 2; + CORE_SETMAGIC(*(kd->kcore_hdr), KCORE_MAGIC, MID_MACHINE,0); /* * If there is no cpu_hdr at this point, we probably have an * old format crash dump.....bail out */ - if (kd_dump->cpu_hdr == NULL) { - free((void *)kd_dump->kcore_hdr); - kd_dump->kcore_hdr = NULL; - _kvm_err(kd_dump, kd_dump->program, "invalid dump"); + if (kd->cpu_hdr == NULL) { + free((void *)kd->kcore_hdr); + kd->kcore_hdr = NULL; + _kvm_err(kd, kd->program, "invalid dump"); } - kd_dump->dump_off = dump_off + hdr_size; + kd->dump_off = dump_off + hdr_size; /* * Now that we have a valid header, enable translations. */ - _kvm_initvtop(kd_dump); + _kvm_initvtop(kd); return(hdr_size); } |