summaryrefslogtreecommitdiffstats
path: root/lib/libkvm/kvm.c
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1996-05-05 14:56:34 +0000
committerderaadt <deraadt@openbsd.org>1996-05-05 14:56:34 +0000
commit15f0ebb07559326692b6c475dd1bc53c9862ac8e (patch)
treee9389ddbb06e43460301bc2d6eef509d38723d42 /lib/libkvm/kvm.c
parentadd general ether_ioctl call in net/if_ethersubr.c, (diff)
downloadwireguard-openbsd-15f0ebb07559326692b6c475dd1bc53c9862ac8e.tar.xz
wireguard-openbsd-15f0ebb07559326692b6c475dd1bc53c9862ac8e.zip
sync with 0430
Diffstat (limited to 'lib/libkvm/kvm.c')
-rw-r--r--lib/libkvm/kvm.c71
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);
}