CVS commit: src/lib/libkvm

2023-08-23 Thread Rin Okuyama
Module Name:src
Committed By:   rin
Date:   Wed Aug 23 14:00:12 UTC 2023

Modified Files:
src/lib/libkvm: kvm.c kvm_aarch64.c kvm_alpha.c kvm_i386pae.c
kvm_or1k.c kvm_powerpc.c kvm_powerpc64.c kvm_riscv.c kvm_sparc64.c

Log Message:
libkvm: whitespace


To generate a diff of this commit:
cvs rdiff -u -r1.110 -r1.111 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm_aarch64.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.3 -r1.4 src/lib/libkvm/kvm_i386pae.c
cvs rdiff -u -r1.2 -r1.3 src/lib/libkvm/kvm_or1k.c src/lib/libkvm/kvm_riscv.c
cvs rdiff -u -r1.14 -r1.15 src/lib/libkvm/kvm_powerpc.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_powerpc64.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libkvm/kvm_sparc64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.110 src/lib/libkvm/kvm.c:1.111
--- src/lib/libkvm/kvm.c:1.110	Mon Jan 10 19:51:30 2022
+++ src/lib/libkvm/kvm.c	Wed Aug 23 14:00:11 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.110 2022/01/10 19:51:30 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.111 2023/08/23 14:00:11 rin Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.110 2022/01/10 19:51:30 christos Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.111 2023/08/23 14:00:11 rin Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -187,9 +187,9 @@ _kvm_pread(kvm_t *kd, int fd, void *buf,
 	}
 
 	/* If aligned nothing to do. */
- 	if (((off % kd->fdalign) | (size % kd->fdalign)) == 0) {
+	if (((off % kd->fdalign) | (size % kd->fdalign)) == 0) {
 		return pread(fd, buf, size, off);
- 	}
+	}
 
 	/*
 	 * Otherwise must buffer.  We can't tolerate short reads in this
@@ -397,7 +397,7 @@ _kvm_open(kvm_t *kd, const char *uf, con
 goto failed;
 		}
 		kd->dump_size = (size_t)st.st_size;
-		kd->dump_mem = mmap(NULL, kd->dump_size, PROT_READ|PROT_WRITE, 
+		kd->dump_mem = mmap(NULL, kd->dump_size, PROT_READ|PROT_WRITE,
 		MAP_FILE|MAP_PRIVATE, kd->pmfd, 0);
 	}
 	return (kd);
@@ -635,7 +635,7 @@ clear_gap(kvm_t *kd, bool (*write_buf)(v
 			return -1;
 		}
 		size -= len;
-	} 
+	}
 
 	return 0;
 }

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.11 src/lib/libkvm/kvm_aarch64.c:1.12
--- src/lib/libkvm/kvm_aarch64.c:1.11	Mon Jan 10 19:51:30 2022
+++ src/lib/libkvm/kvm_aarch64.c	Wed Aug 23 14:00:11 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.11 2022/01/10 19:51:30 christos Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.12 2023/08/23 14:00:11 rin Exp $ */
 
 /*-
  * Copyright (c) 2014, 2018 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.11 2022/01/10 19:51:30 christos Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.12 2023/08/23 14:00:11 rin Exp $");
 
 /*ARGSUSED*/
 void
@@ -68,10 +68,10 @@ _kvm_initvtop(kvm_t *kd)
 int
 _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr_t *pa)
 {
-if (ISALIVE(kd)) {
-_kvm_err(kd, 0, "vatop called in live kernel!");
-return(0);
-}
+	if (ISALIVE(kd)) {
+		_kvm_err(kd, 0, "vatop called in live kernel!");
+		return(0);
+	}
 
 	if ((va & AARCH64_DIRECTMAP_MASK) != AARCH64_DIRECTMAP_START) {
 		/*
@@ -154,7 +154,7 @@ lose:
 		}
 		if (--levels == 0) {
 			*pa = (pte & page_addr) | (va & page_mask);
-			return page_size - (va & page_mask); 
+			return page_size - (va & page_mask);
 		}
 
 		/*

Index: src/lib/libkvm/kvm_alpha.c
diff -u src/lib/libkvm/kvm_alpha.c:1.28 src/lib/libkvm/kvm_alpha.c:1.29
--- src/lib/libkvm/kvm_alpha.c:1.28	Mon Jan 10 19:51:30 2022
+++ src/lib/libkvm/kvm_alpha.c	Wed Aug 23 14:00:11 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_alpha.c,v 1.28 2022/01/10 19:51:30 christos Exp $ */
+/* $NetBSD: kvm_alpha.c,v 1.29 2023/08/23 14:00:11 rin Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -50,7 +50,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_alpha.c,v 1.28 2022/01/10 19:51:30 christos Exp $");
+__RCSID("$NetBSD: kvm_alpha.c,v 1.29 2023/08/23 14:00:11 rin Exp $");
 
 /*ARGSUSED*/
 void
@@ -74,10 +74,10 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 	u_long pteoff, page_off;
 	int rv;
 
-if (ISALIVE(kd)) {
-_kvm_err(kd, 0, "vatop called in live kernel!");
-return(0);
-}
+	if (ISALIVE(kd)) {
+		_kvm_err(kd, 0, "vatop called in live kernel!");
+		return(0);
+	}
 
 	cpu_kh = kd->cpu_data;
 	page_off = va & (cpu_kh->page_size - 1);

Index: src/lib/libkvm/kvm_i386pae.c
diff -u src/lib/libkvm/kvm_i386pae.c:1.3 src/lib/libkvm/kvm_i386pae.c:1.4
--- src/lib/libkvm/kvm_i386pae.c:1.3	Sat Apr 25 05:17:16 2020
+++ src/lib/libkvm/kvm_i386pae.c	Wed Aug 23 14:00:11 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_i386pae.c,v 1.3 2020/04/25 05:17:16 maxv Exp $ */
+/* $NetBSD: 

CVS commit: src/lib/libkvm

2023-08-23 Thread Rin Okuyama
Module Name:src
Committed By:   rin
Date:   Wed Aug 23 14:00:12 UTC 2023

Modified Files:
src/lib/libkvm: kvm.c kvm_aarch64.c kvm_alpha.c kvm_i386pae.c
kvm_or1k.c kvm_powerpc.c kvm_powerpc64.c kvm_riscv.c kvm_sparc64.c

Log Message:
libkvm: whitespace


To generate a diff of this commit:
cvs rdiff -u -r1.110 -r1.111 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm_aarch64.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.3 -r1.4 src/lib/libkvm/kvm_i386pae.c
cvs rdiff -u -r1.2 -r1.3 src/lib/libkvm/kvm_or1k.c src/lib/libkvm/kvm_riscv.c
cvs rdiff -u -r1.14 -r1.15 src/lib/libkvm/kvm_powerpc.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_powerpc64.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libkvm/kvm_sparc64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2023-04-01 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Sat Apr  1 09:08:11 UTC 2023

Modified Files:
src/lib/libkvm: Makefile

Log Message:
libkvm: suppress lint warnings about extern declarations for now

This should be properly fixed by someone who is familiar with libkvm, as
it affects  as well.


To generate a diff of this commit:
cvs rdiff -u -r1.51 -r1.52 src/lib/libkvm/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/Makefile
diff -u src/lib/libkvm/Makefile:1.51 src/lib/libkvm/Makefile:1.52
--- src/lib/libkvm/Makefile:1.51	Sun Jan 24 16:07:48 2016
+++ src/lib/libkvm/Makefile	Sat Apr  1 09:08:11 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.51 2016/01/24 16:07:48 christos Exp $
+#	$NetBSD: Makefile,v 1.52 2023/04/01 09:08:11 rillig Exp $
 #	from: @(#)Makefile	8.1 (Berkeley) 6/4/93
 
 WARNS=	3
@@ -34,6 +34,8 @@ SRCS+=	kvm_${MACHINE_CPU}.c
 
 .if ${MACHINE_ARCH} == "i386"
 LINTFLAGS+=-w
+LINTFLAGS+=	-X 351		# 'extern' declaration outside header
+LINTFLAGS+=	-X 352		# 'extern' declaration in function body
 SRCS+=	kvm_i386pae.c # Hook PAE support in the i386 build
 .endif
 



CVS commit: src/lib/libkvm

2023-04-01 Thread Roland Illig
Module Name:src
Committed By:   rillig
Date:   Sat Apr  1 09:08:11 UTC 2023

Modified Files:
src/lib/libkvm: Makefile

Log Message:
libkvm: suppress lint warnings about extern declarations for now

This should be properly fixed by someone who is familiar with libkvm, as
it affects  as well.


To generate a diff of this commit:
cvs rdiff -u -r1.51 -r1.52 src/lib/libkvm/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2022-01-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jan 10 20:04:01 UTC 2022

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
read the ps arguments from the correct place.


To generate a diff of this commit:
cvs rdiff -u -r1.96 -r1.97 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_proc.c
diff -u src/lib/libkvm/kvm_proc.c:1.96 src/lib/libkvm/kvm_proc.c:1.97
--- src/lib/libkvm/kvm_proc.c:1.96	Mon Jan 10 14:51:30 2022
+++ src/lib/libkvm/kvm_proc.c	Mon Jan 10 15:04:01 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_proc.c,v 1.96 2022/01/10 19:51:30 christos Exp $	*/
+/*	$NetBSD: kvm_proc.c,v 1.97 2022/01/10 20:04:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
 #else
-__RCSID("$NetBSD: kvm_proc.c,v 1.96 2022/01/10 19:51:30 christos Exp $");
+__RCSID("$NetBSD: kvm_proc.c,v 1.97 2022/01/10 20:04:01 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -118,6 +118,7 @@ __RCSID("$NetBSD: kvm_proc.c,v 1.96 2022
 struct miniproc {
 	struct	vmspace *p_vmspace;
 	char	p_stat;
+	vaddr_t p_psstrp;
 	struct	proc *p_paddr;
 	pid_t	p_pid;
 };
@@ -131,6 +132,7 @@ struct miniproc {
 		(p)->p_pid = (kp)->p_pid; \
 		(p)->p_paddr = NULL; \
 		(p)->p_vmspace = (kp)->p_vmspace; \
+		(p)->p_psstrp = (kp)->p_psstrp; \
 	} while (/*CONSTCOND*/0);
 
 #define KPTOMINI(kp, p) \
@@ -1057,7 +1059,6 @@ proc_verify(kvm_t *kd, u_long kernp, con
 	(kernproc.p_stat != SZOMB || p->p_stat == SZOMB));
 }
 
-extern struct ps_strings *__ps_strings;
 static char **
 kvm_doargv(kvm_t *kd, const struct miniproc *p, int nchr,
 	   void (*info)(struct ps_strings *, u_long *, int *))
@@ -1072,8 +1073,7 @@ kvm_doargv(kvm_t *kd, const struct minip
 	 */
 	if (p->p_stat == SZOMB)
 		return (NULL);
-	/* XXX: this is broken for ASLR: we need to read p->p_psstr instead */
-	cnt = (int)kvm_ureadm(kd, p, (u_long)(intptr_t)__ps_strings,
+	cnt = (int)kvm_ureadm(kd, p, p->p_psstrp,
 	(void *), sizeof(arginfo));
 	if (cnt != sizeof(arginfo))
 		return (NULL);



CVS commit: src/lib/libkvm

2022-01-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jan 10 20:04:01 UTC 2022

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
read the ps arguments from the correct place.


To generate a diff of this commit:
cvs rdiff -u -r1.96 -r1.97 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2022-01-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jan 10 19:51:30 UTC 2022

Modified Files:
src/lib/libkvm: kvm.c kvm_aarch64.c kvm_alpha.c kvm_arm.c kvm_hppa.c
kvm_i386.c kvm_m68k.c kvm_mips.c kvm_or1k.c kvm_powerpc.c
kvm_powerpc64.c kvm_private.h kvm_proc.c kvm_riscv.c kvm_sh3.c
kvm_sparc.c kvm_sparc64.c kvm_vax.c kvm_x86_64.c

Log Message:
Get rid of usrstack/USRSTACK. Document that the old version of getargv is
broken because of ASLR.


To generate a diff of this commit:
cvs rdiff -u -r1.109 -r1.110 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libkvm/kvm_aarch64.c
cvs rdiff -u -r1.27 -r1.28 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.6 -r1.7 src/lib/libkvm/kvm_arm.c \
src/lib/libkvm/kvm_powerpc64.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_hppa.c
cvs rdiff -u -r1.31 -r1.32 src/lib/libkvm/kvm_i386.c
cvs rdiff -u -r1.19 -r1.20 src/lib/libkvm/kvm_m68k.c
cvs rdiff -u -r1.22 -r1.23 src/lib/libkvm/kvm_mips.c
cvs rdiff -u -r1.1 -r1.2 src/lib/libkvm/kvm_or1k.c src/lib/libkvm/kvm_riscv.c
cvs rdiff -u -r1.13 -r1.14 src/lib/libkvm/kvm_powerpc.c
cvs rdiff -u -r1.21 -r1.22 src/lib/libkvm/kvm_private.h
cvs rdiff -u -r1.95 -r1.96 src/lib/libkvm/kvm_proc.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libkvm/kvm_sh3.c
cvs rdiff -u -r1.35 -r1.36 src/lib/libkvm/kvm_sparc.c
cvs rdiff -u -r1.17 -r1.18 src/lib/libkvm/kvm_sparc64.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libkvm/kvm_vax.c
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.109 src/lib/libkvm/kvm.c:1.110
--- src/lib/libkvm/kvm.c:1.109	Sat May  2 10:31:13 2020
+++ src/lib/libkvm/kvm.c	Mon Jan 10 14:51:30 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.109 2020/05/02 14:31:13 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.110 2022/01/10 19:51:30 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.109 2020/05/02 14:31:13 christos Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.110 2022/01/10 19:51:30 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -289,7 +289,7 @@ _kvm_open(kvm_t *kd, const char *uf, con
 
 	/*
 	 * Call the MD open hook.  This sets:
-	 *	usrstack, min_uva, max_uva
+	 *	min_uva, max_uva
 	 */
 	if (_kvm_mdopen(kd)) {
 		_kvm_err(kd, kd->program, "md init failed");

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.10 src/lib/libkvm/kvm_aarch64.c:1.11
--- src/lib/libkvm/kvm_aarch64.c:1.10	Tue Nov 10 14:14:11 2020
+++ src/lib/libkvm/kvm_aarch64.c	Mon Jan 10 14:51:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.10 2020/11/10 19:14:11 skrll Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.11 2022/01/10 19:51:30 christos Exp $ */
 
 /*-
  * Copyright (c) 2014, 2018 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.10 2020/11/10 19:14:11 skrll Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.11 2022/01/10 19:51:30 christos Exp $");
 
 /*ARGSUSED*/
 void
@@ -197,7 +197,6 @@ int
 _kvm_mdopen(kvm_t *kd)
 {
 
-	kd->usrstack = USRSTACK;
 	kd->min_uva = VM_MIN_ADDRESS;
 	kd->max_uva = VM_MAXUSER_ADDRESS;
 

Index: src/lib/libkvm/kvm_alpha.c
diff -u src/lib/libkvm/kvm_alpha.c:1.27 src/lib/libkvm/kvm_alpha.c:1.28
--- src/lib/libkvm/kvm_alpha.c:1.27	Wed Feb 19 15:21:22 2014
+++ src/lib/libkvm/kvm_alpha.c	Mon Jan 10 14:51:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_alpha.c,v 1.27 2014/02/19 20:21:22 dsl Exp $ */
+/* $NetBSD: kvm_alpha.c,v 1.28 2022/01/10 19:51:30 christos Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -50,7 +50,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_alpha.c,v 1.27 2014/02/19 20:21:22 dsl Exp $");
+__RCSID("$NetBSD: kvm_alpha.c,v 1.28 2022/01/10 19:51:30 christos Exp $");
 
 /*ARGSUSED*/
 void
@@ -186,7 +186,6 @@ int
 _kvm_mdopen(kvm_t *kd)
 {
 
-	kd->usrstack = USRSTACK;
 	kd->min_uva = VM_MIN_ADDRESS;
 	kd->max_uva = VM_MAXUSER_ADDRESS;
 

Index: src/lib/libkvm/kvm_arm.c
diff -u src/lib/libkvm/kvm_arm.c:1.6 src/lib/libkvm/kvm_arm.c:1.7
--- src/lib/libkvm/kvm_arm.c:1.6	Mon Sep 20 19:23:16 2010
+++ src/lib/libkvm/kvm_arm.c	Mon Jan 10 14:51:30 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_arm.c,v 1.6 2010/09/20 23:23:16 jym Exp $	 */
+/* $NetBSD: kvm_arm.c,v 1.7 2022/01/10 19:51:30 christos Exp $	 */
 
 /*-
  * Copyright (C) 1996 Wolfgang Solfrank.
@@ -39,7 +39,7 @@
 
 #include 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: kvm_arm.c,v 1.6 2010/09/20 23:23:16 jym Exp $");
+__RCSID("$NetBSD: kvm_arm.c,v 1.7 2022/01/10 19:51:30 christos Exp $");
 #endif/* LIBC_SCCS and not lint */
 
 #include 
@@ -194,13 +194,11 @@ _kvm_mdopen(kvm_t * kd)
 	extern struct ps_strings *__ps_strings;
 
 #if 0/* XXX - These vary across arm machines... */
-	

CVS commit: src/lib/libkvm

2022-01-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jan 10 19:51:30 UTC 2022

Modified Files:
src/lib/libkvm: kvm.c kvm_aarch64.c kvm_alpha.c kvm_arm.c kvm_hppa.c
kvm_i386.c kvm_m68k.c kvm_mips.c kvm_or1k.c kvm_powerpc.c
kvm_powerpc64.c kvm_private.h kvm_proc.c kvm_riscv.c kvm_sh3.c
kvm_sparc.c kvm_sparc64.c kvm_vax.c kvm_x86_64.c

Log Message:
Get rid of usrstack/USRSTACK. Document that the old version of getargv is
broken because of ASLR.


To generate a diff of this commit:
cvs rdiff -u -r1.109 -r1.110 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libkvm/kvm_aarch64.c
cvs rdiff -u -r1.27 -r1.28 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.6 -r1.7 src/lib/libkvm/kvm_arm.c \
src/lib/libkvm/kvm_powerpc64.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_hppa.c
cvs rdiff -u -r1.31 -r1.32 src/lib/libkvm/kvm_i386.c
cvs rdiff -u -r1.19 -r1.20 src/lib/libkvm/kvm_m68k.c
cvs rdiff -u -r1.22 -r1.23 src/lib/libkvm/kvm_mips.c
cvs rdiff -u -r1.1 -r1.2 src/lib/libkvm/kvm_or1k.c src/lib/libkvm/kvm_riscv.c
cvs rdiff -u -r1.13 -r1.14 src/lib/libkvm/kvm_powerpc.c
cvs rdiff -u -r1.21 -r1.22 src/lib/libkvm/kvm_private.h
cvs rdiff -u -r1.95 -r1.96 src/lib/libkvm/kvm_proc.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libkvm/kvm_sh3.c
cvs rdiff -u -r1.35 -r1.36 src/lib/libkvm/kvm_sparc.c
cvs rdiff -u -r1.17 -r1.18 src/lib/libkvm/kvm_sparc64.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libkvm/kvm_vax.c
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2021-07-19 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jul 19 10:30:36 UTC 2021

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
Match the declaration in 


To generate a diff of this commit:
cvs rdiff -u -r1.94 -r1.95 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2021-07-19 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Jul 19 10:30:36 UTC 2021

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
Match the declaration in 


To generate a diff of this commit:
cvs rdiff -u -r1.94 -r1.95 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_proc.c
diff -u src/lib/libkvm/kvm_proc.c:1.94 src/lib/libkvm/kvm_proc.c:1.95
--- src/lib/libkvm/kvm_proc.c:1.94	Wed Dec 11 15:19:27 2019
+++ src/lib/libkvm/kvm_proc.c	Mon Jul 19 06:30:36 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_proc.c,v 1.94 2019/12/11 20:19:27 ad Exp $	*/
+/*	$NetBSD: kvm_proc.c,v 1.95 2021/07/19 10:30:36 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
 #else
-__RCSID("$NetBSD: kvm_proc.c,v 1.94 2019/12/11 20:19:27 ad Exp $");
+__RCSID("$NetBSD: kvm_proc.c,v 1.95 2021/07/19 10:30:36 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -159,7 +159,9 @@ struct miniproc {
  */
 struct kvm_kauth_cred {
 	u_int cr_refcnt;		/* reference count */
-	uint8_t cr_pad[CACHE_LINE_SIZE - sizeof(u_int)];
+#if COHERENCY_UNIT > 4
+	uint8_t cr_pad[COHERENCY_UNIT - 4];
+#endif
 	uid_t cr_uid;			/* user id */
 	uid_t cr_euid;			/* effective user id */
 	uid_t cr_svuid;			/* saved effective user id */



CVS commit: src/lib/libkvm

2020-11-10 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Tue Nov 10 19:14:11 UTC 2020

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
Catch up with aa64 is not mips change


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2020-11-10 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Tue Nov 10 19:14:11 UTC 2020

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
Catch up with aa64 is not mips change


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.9 src/lib/libkvm/kvm_aarch64.c:1.10
--- src/lib/libkvm/kvm_aarch64.c:1.9	Thu Sep 12 10:18:50 2019
+++ src/lib/libkvm/kvm_aarch64.c	Tue Nov 10 19:14:11 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.9 2019/09/12 10:18:50 mlelstv Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.10 2020/11/10 19:14:11 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014, 2018 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.9 2019/09/12 10:18:50 mlelstv Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.10 2020/11/10 19:14:11 skrll Exp $");
 
 /*ARGSUSED*/
 void
@@ -73,7 +73,7 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 return(0);
 }
 
-	if ((va & AARCH64_KSEG_MASK) != AARCH64_KSEG_START) {
+	if ((va & AARCH64_DIRECTMAP_MASK) != AARCH64_DIRECTMAP_START) {
 		/*
 		 * Bogus address (not in KV space): punt.
 		 */



CVS commit: src/lib/libkvm

2020-05-02 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat May  2 14:31:13 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Cast off_t to size_t to appease lint:
warning: conversion from 'long long' to 'int' may lose accuracy


To generate a diff of this commit:
cvs rdiff -u -r1.108 -r1.109 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2020-05-02 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat May  2 14:31:13 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Cast off_t to size_t to appease lint:
warning: conversion from 'long long' to 'int' may lose accuracy


To generate a diff of this commit:
cvs rdiff -u -r1.108 -r1.109 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.108 src/lib/libkvm/kvm.c:1.109
--- src/lib/libkvm/kvm.c:1.108	Tue Apr 28 10:27:41 2020
+++ src/lib/libkvm/kvm.c	Sat May  2 10:31:13 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.108 2020/04/28 14:27:41 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.109 2020/05/02 14:31:13 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.108 2020/04/28 14:27:41 christos Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.109 2020/05/02 14:31:13 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -182,7 +182,7 @@ _kvm_pread(kvm_t *kd, int fd, void *buf,
 			errno = EINVAL;
 			return -1;
 		}
-		memcpy(buf, (char *)kd->dump_mem + off, size);
+		memcpy(buf, (char *)kd->dump_mem + (size_t)off, size);
 		return size;
 	}
 
@@ -224,7 +224,7 @@ _kvm_pwrite(kvm_t *kd, const void *buf, 
 		errno = EINVAL;
 		return -1;
 	}
-	memcpy(mem + off, buf, size);
+	memcpy(mem + (size_t)off, buf, size);
 	return size;
 }
 



CVS commit: src/lib/libkvm

2020-04-28 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr 28 14:27:41 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Don't treat failure to map the file as fatal.


To generate a diff of this commit:
cvs rdiff -u -r1.107 -r1.108 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.107 src/lib/libkvm/kvm.c:1.108
--- src/lib/libkvm/kvm.c:1.107	Mon Apr 27 20:19:23 2020
+++ src/lib/libkvm/kvm.c	Tue Apr 28 10:27:41 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.107 2020/04/28 00:19:23 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.108 2020/04/28 14:27:41 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.107 2020/04/28 00:19:23 christos Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.108 2020/04/28 14:27:41 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -399,8 +399,6 @@ _kvm_open(kvm_t *kd, const char *uf, con
 		kd->dump_size = (size_t)st.st_size;
 		kd->dump_mem = mmap(NULL, kd->dump_size, PROT_READ|PROT_WRITE, 
 		MAP_FILE|MAP_PRIVATE, kd->pmfd, 0);
-		if (kd->dump_mem == MAP_FAILED)
-			goto failed;
 	}
 	return (kd);
 failed:



CVS commit: src/lib/libkvm

2020-04-28 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr 28 14:27:41 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Don't treat failure to map the file as fatal.


To generate a diff of this commit:
cvs rdiff -u -r1.107 -r1.108 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2020-04-27 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr 28 00:19:23 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
make kvm_pread use the mapped buffer if it is available.


To generate a diff of this commit:
cvs rdiff -u -r1.106 -r1.107 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.106 src/lib/libkvm/kvm.c:1.107
--- src/lib/libkvm/kvm.c:1.106	Mon Apr 27 20:12:01 2020
+++ src/lib/libkvm/kvm.c	Mon Apr 27 20:19:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.106 2020/04/28 00:12:01 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.107 2020/04/28 00:19:23 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.106 2020/04/28 00:12:01 christos Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.107 2020/04/28 00:19:23 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -177,6 +177,15 @@ _kvm_pread(kvm_t *kd, int fd, void *buf,
 	ssize_t rv;
 	off_t doff;
 
+	if (kd->dump_mem != MAP_FAILED) {
+		if (size + off > kd->dump_size) {
+			errno = EINVAL;
+			return -1;
+		}
+		memcpy(buf, (char *)kd->dump_mem + off, size);
+		return size;
+	}
+
 	/* If aligned nothing to do. */
  	if (((off % kd->fdalign) | (size % kd->fdalign)) == 0) {
 		return pread(fd, buf, size, off);



CVS commit: src/lib/libkvm

2020-04-27 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr 28 00:19:23 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
make kvm_pread use the mapped buffer if it is available.


To generate a diff of this commit:
cvs rdiff -u -r1.106 -r1.107 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2020-04-27 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr 28 00:12:01 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c kvm_private.h

Log Message:
Implement kvm_write() for dump files. We map the file privately so that
changes don't get propagated back, and then write to the private buffer.
This is not useful yes, but it is simple enough to make pread use the buffer
if it is available.


To generate a diff of this commit:
cvs rdiff -u -r1.105 -r1.106 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libkvm/kvm_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2020-04-27 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Apr 28 00:12:01 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c kvm_private.h

Log Message:
Implement kvm_write() for dump files. We map the file privately so that
changes don't get propagated back, and then write to the private buffer.
This is not useful yes, but it is simple enough to make pread use the buffer
if it is available.


To generate a diff of this commit:
cvs rdiff -u -r1.105 -r1.106 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libkvm/kvm_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.105 src/lib/libkvm/kvm.c:1.106
--- src/lib/libkvm/kvm.c:1.105	Sat Mar  7 19:06:42 2020
+++ src/lib/libkvm/kvm.c	Mon Apr 27 20:12:01 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.105 2020/03/08 00:06:42 chs Exp $	*/
+/*	$NetBSD: kvm.c,v 1.106 2020/04/28 00:12:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.105 2020/03/08 00:06:42 chs Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.106 2020/04/28 00:12:01 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -48,6 +48,7 @@ __RCSID("$NetBSD: kvm.c,v 1.105 2020/03/
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -205,6 +206,19 @@ _kvm_pread(kvm_t *kd, int fd, void *buf,
 	return size;
 }
 
+static ssize_t
+_kvm_pwrite(kvm_t *kd, const void *buf, size_t size, off_t off)
+{
+	char *mem = kd->dump_mem;
+
+	if (size + off > kd->dump_size) {
+		errno = EINVAL;
+		return -1;
+	}
+	memcpy(mem + off, buf, size);
+	return size;
+}
+
 /*
  * Wrapper around the pread(2) system call; calls _kvm_syserr() for us
  * in the event of emergency.
@@ -256,6 +270,8 @@ _kvm_open(kvm_t *kd, const char *uf, con
 	kd->iobuf = NULL;
 	kd->iobufsz = 0;
 	kd->errbuf[0] = '\0';
+	kd->dump_mem = MAP_FAILED;
+	kd->dump_size = 0;
 
 	if (flag & KVM_NO_FILES) {
 		kd->alive = KVM_ALIVE_SYSCTL;
@@ -371,6 +387,11 @@ _kvm_open(kvm_t *kd, const char *uf, con
 			if (_kvm_initvtop(kd) < 0)
 goto failed;
 		}
+		kd->dump_size = (size_t)st.st_size;
+		kd->dump_mem = mmap(NULL, kd->dump_size, PROT_READ|PROT_WRITE, 
+		MAP_FILE|MAP_PRIVATE, kd->pmfd, 0);
+		if (kd->dump_mem == MAP_FAILED)
+			goto failed;
 	}
 	return (kd);
 failed:
@@ -758,6 +779,8 @@ kvm_close(kvm_t *kd)
 		free(kd->argv);
 	if (kd->iobuf != 0)
 		free(kd->iobuf);
+	if (kd->dump_mem != MAP_FAILED)
+		munmap(kd->dump_mem, kd->dump_size);
 	free(kd);
 
 	return (error);
@@ -891,6 +914,7 @@ ssize_t
 kvm_write(kvm_t *kd, u_long kva, const void *buf, size_t len)
 {
 	int cc;
+	const void *cp;
 
 	if (ISKMEM(kd)) {
 		/*
@@ -909,9 +933,43 @@ kvm_write(kvm_t *kd, u_long kva, const v
 		"can't use kvm_write");
 		return (-1);
 	} else {
-		_kvm_err(kd, kd->program,
-		"kvm_write not implemented for dead kernels");
-		return (-1);
+		if (kd->dump_mem == MAP_FAILED) {
+			_kvm_err(kd, kd->program,
+			"kvm_write not implemented for dead kernels");
+			return (-1);
+		}
+		cp = buf;
+		while (len > 0) {
+			paddr_t	pa;
+			off_t	foff;
+
+			cc = _kvm_kvatop(kd, (vaddr_t)kva, );
+			if (cc == 0) {
+_kvm_err(kd, kd->program, "_kvm_kvatop(%lx)", kva);
+return (-1);
+			}
+			if (cc > len)
+cc = len;
+			foff = _kvm_pa2off(kd, pa);
+			errno = 0;
+			cc = _kvm_pwrite(kd, cp, (size_t)cc, foff);
+			if (cc < 0) {
+_kvm_syserr(kd, kd->program, "kvm_pwrite");
+break;
+			}
+			/*
+			 * If kvm_kvatop returns a bogus value or our core
+			 * file is truncated, we might wind up seeking beyond
+			 * the end of the core file in which case the read will
+			 * return 0 (EOF).
+			 */
+			if (cc == 0)
+break;
+			cp = (const char *)cp + cc;
+			kva += cc;
+			len -= cc;
+		}
+		return ((const char *)cp - (const char *)buf);
 	}
 	/* NOTREACHED */
 }

Index: src/lib/libkvm/kvm_private.h
diff -u src/lib/libkvm/kvm_private.h:1.20 src/lib/libkvm/kvm_private.h:1.21
--- src/lib/libkvm/kvm_private.h:1.20	Mon Sep 12 17:11:32 2011
+++ src/lib/libkvm/kvm_private.h	Mon Apr 27 20:12:01 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_private.h,v 1.20 2011/09/12 21:11:32 christos Exp $	*/
+/*	$NetBSD: kvm_private.h,v 1.21 2020/04/28 00:12:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -72,6 +72,8 @@ struct __kvm {
 	size_t	cpu_dsize;
 	void	*cpu_data;
 	off_t	dump_off;	/* Where the actual dump starts	*/
+	void	*dump_mem;
+	size_t	dump_size;
 
 	/*
 	 * Kernel virtual address translation state.  This only gets filled



CVS commit: src/lib/libkvm

2020-03-07 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Sun Mar  8 00:14:18 UTC 2020

Modified Files:
src/lib/libkvm: kvm_x86_64.c

Log Message:
use a binary search in _kvm_pa2off().  this helps a lot for sparse dumps,
which can have millions of memory segments.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_x86_64.c
diff -u src/lib/libkvm/kvm_x86_64.c:1.10 src/lib/libkvm/kvm_x86_64.c:1.11
--- src/lib/libkvm/kvm_x86_64.c:1.10	Wed Feb 19 20:21:22 2014
+++ src/lib/libkvm/kvm_x86_64.c	Sun Mar  8 00:14:18 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_x86_64.c,v 1.10 2014/02/19 20:21:22 dsl Exp $	*/
+/*	$NetBSD: kvm_x86_64.c,v 1.11 2020/03/08 00:14:18 chs Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_hp300.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: kvm_x86_64.c,v 1.10 2014/02/19 20:21:22 dsl Exp $");
+__RCSID("$NetBSD: kvm_x86_64.c,v 1.11 2020/03/08 00:14:18 chs Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -186,6 +186,36 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 	return (0);
 }
 
+struct p2o {
+	paddr_t pa;
+	psize_t sz;
+	off_t off;
+};
+
+static int
+cmp_p2o(const void *a, const void *b)
+{
+	const struct p2o *p1 = a;
+	const struct p2o *p2 = b;
+
+	/* If one range contains the start of the other, it's a match. */
+	if (p1->pa >= p2->pa && p1->pa < p2->pa + p2->sz) {
+		return 0;
+	}
+	if (p2->pa >= p1->pa && p2->pa < p1->pa + p1->sz) {
+		return 0;
+	}
+
+	/* Otherwise sort by pa. */
+	if (p1->pa < p2->pa)
+		return -1;
+	else if (p1->pa > p2->pa)
+		return 1;
+	else
+		return 0;
+}
+
+
 /*
  * Translate a physical address to a file-offset in the crash dump.
  */
@@ -197,19 +227,36 @@ _kvm_pa2off(kvm_t *kd, paddr_t pa)
 	off_t off;
 	int i;
 
+	static struct p2o *map;
+	struct p2o key, *val;
+
 	cpu_kh = kd->cpu_data;
 	ramsegs = (void *)((char *)(void *)cpu_kh + ALIGN(sizeof *cpu_kh));
 
-	off = 0;
-	for (i = 0; i < cpu_kh->nmemsegs; i++) {
-		if (pa >= ramsegs[i].start &&
-		(pa - ramsegs[i].start) < ramsegs[i].size) {
-			off += (pa - ramsegs[i].start);
-			break;
+	if (map == NULL) {
+		map = calloc(sizeof *map, cpu_kh->nmemsegs);
+		off = 0;
+		for (i = 0; i < cpu_kh->nmemsegs; i++) {
+			map[i].pa = ramsegs[i].start;
+			map[i].sz = ramsegs[i].size;
+			map[i].off = off;
+			off += ramsegs[i].size;
 		}
-		off += ramsegs[i].size;
+#if 0
+		/* The array appears to be sorted already */
+		qsort(map, cpu_kh->nmemsegs, sizeof(*map), cmp_p2o);
+#endif
 	}
 
+	key.pa = pa;
+	key.sz = 1;
+	key.off = -1;
+	val = bsearch(, map, cpu_kh->nmemsegs, sizeof (key), cmp_p2o);
+	if (val)
+		off = val->off + pa - val->pa;
+	else
+		off = 0;
+
 	return (kd->dump_off + off);
 }
 



CVS commit: src/lib/libkvm

2020-03-07 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Sun Mar  8 00:14:18 UTC 2020

Modified Files:
src/lib/libkvm: kvm_x86_64.c

Log Message:
use a binary search in _kvm_pa2off().  this helps a lot for sparse dumps,
which can have millions of memory segments.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2020-03-07 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Sun Mar  8 00:06:42 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
only do bounce buffering for character devices.


To generate a diff of this commit:
cvs rdiff -u -r1.104 -r1.105 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.104 src/lib/libkvm/kvm.c:1.105
--- src/lib/libkvm/kvm.c:1.104	Mon Nov  5 00:43:30 2018
+++ src/lib/libkvm/kvm.c	Sun Mar  8 00:06:42 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.104 2018/11/05 00:43:30 mrg Exp $	*/
+/*	$NetBSD: kvm.c,v 1.105 2020/03/08 00:06:42 chs Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.104 2018/11/05 00:43:30 mrg Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.105 2020/03/08 00:06:42 chs Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -352,7 +352,12 @@ _kvm_open(kvm_t *kd, const char *uf, con
 			/* swap is not configured?  not fatal */
 		}
 	} else {
-		kd->fdalign = DEV_BSIZE;	/* XXX */
+		if (S_ISCHR(st.st_mode)) {
+			kd->fdalign = DEV_BSIZE;
+		} else {
+			kd->fdalign = 1;
+		}
+
 		/*
 		 * This is a crash dump.
 		 * Initialize the virtual address translation machinery.



CVS commit: src/lib/libkvm

2020-03-07 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Sun Mar  8 00:06:42 UTC 2020

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
only do bounce buffering for character devices.


To generate a diff of this commit:
cvs rdiff -u -r1.104 -r1.105 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2019-12-11 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Wed Dec 11 20:19:27 UTC 2019

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
Redo previous more conventionally.  Requested by kre@.


To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_proc.c
diff -u src/lib/libkvm/kvm_proc.c:1.93 src/lib/libkvm/kvm_proc.c:1.94
--- src/lib/libkvm/kvm_proc.c:1.93	Tue Dec 10 18:13:07 2019
+++ src/lib/libkvm/kvm_proc.c	Wed Dec 11 20:19:27 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_proc.c,v 1.93 2019/12/10 18:13:07 ad Exp $	*/
+/*	$NetBSD: kvm_proc.c,v 1.94 2019/12/11 20:19:27 ad Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
 #else
-__RCSID("$NetBSD: kvm_proc.c,v 1.93 2019/12/10 18:13:07 ad Exp $");
+__RCSID("$NetBSD: kvm_proc.c,v 1.94 2019/12/11 20:19:27 ad Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -260,7 +260,7 @@ _kvm_ureadm(kvm_t *kd, const struct mini
 			return (NULL);
 
 		if (_kvm_pread(kd, kd->pmfd, kd->swapspc, (size_t)kd->nbpg,
-		(off_t)pg.phys_addr & -kd->nbpg) != kd->nbpg)
+		(off_t)pg.phys_addr & ~(kd->nbpg - 1)) != kd->nbpg)
 			return (NULL);
 	} else {
 		if (kd->swfd < 0 ||



CVS commit: src/lib/libkvm

2019-12-11 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Wed Dec 11 20:19:27 UTC 2019

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
Redo previous more conventionally.  Requested by kre@.


To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2019-12-10 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Tue Dec 10 18:13:07 UTC 2019

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
Mask out always zero bits off pg->phys_addr.


To generate a diff of this commit:
cvs rdiff -u -r1.92 -r1.93 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2019-12-10 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Tue Dec 10 18:13:07 UTC 2019

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
Mask out always zero bits off pg->phys_addr.


To generate a diff of this commit:
cvs rdiff -u -r1.92 -r1.93 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_proc.c
diff -u src/lib/libkvm/kvm_proc.c:1.92 src/lib/libkvm/kvm_proc.c:1.93
--- src/lib/libkvm/kvm_proc.c:1.92	Mon Apr  4 22:14:38 2016
+++ src/lib/libkvm/kvm_proc.c	Tue Dec 10 18:13:07 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_proc.c,v 1.92 2016/04/04 22:14:38 christos Exp $	*/
+/*	$NetBSD: kvm_proc.c,v 1.93 2019/12/10 18:13:07 ad Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
 #else
-__RCSID("$NetBSD: kvm_proc.c,v 1.92 2016/04/04 22:14:38 christos Exp $");
+__RCSID("$NetBSD: kvm_proc.c,v 1.93 2019/12/10 18:13:07 ad Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -260,7 +260,7 @@ _kvm_ureadm(kvm_t *kd, const struct mini
 			return (NULL);
 
 		if (_kvm_pread(kd, kd->pmfd, kd->swapspc, (size_t)kd->nbpg,
-		(off_t)pg.phys_addr) != kd->nbpg)
+		(off_t)pg.phys_addr & -kd->nbpg) != kd->nbpg)
 			return (NULL);
 	} else {
 		if (kd->swfd < 0 ||



CVS commit: src/lib/libkvm

2019-09-12 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Thu Sep 12 10:18:50 UTC 2019

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
Need register defines that were moved to armreg.h


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.8 src/lib/libkvm/kvm_aarch64.c:1.9
--- src/lib/libkvm/kvm_aarch64.c:1.8	Wed Dec 19 11:02:21 2018
+++ src/lib/libkvm/kvm_aarch64.c	Thu Sep 12 10:18:50 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.8 2018/12/19 11:02:21 mrg Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.9 2019/09/12 10:18:50 mlelstv Exp $ */
 
 /*-
  * Copyright (c) 2014, 2018 The NetBSD Foundation, Inc.
@@ -39,6 +39,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 
@@ -48,7 +49,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.8 2018/12/19 11:02:21 mrg Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.9 2019/09/12 10:18:50 mlelstv Exp $");
 
 /*ARGSUSED*/
 void



CVS commit: src/lib/libkvm

2019-09-12 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Thu Sep 12 10:18:50 UTC 2019

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
Need register defines that were moved to armreg.h


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-12-19 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Dec 19 11:02:21 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
be consistent about uint64_t and bit masks.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-12-19 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Dec 19 11:02:21 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
be consistent about uint64_t and bit masks.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.7 src/lib/libkvm/kvm_aarch64.c:1.8
--- src/lib/libkvm/kvm_aarch64.c:1.7	Wed Dec 19 11:00:09 2018
+++ src/lib/libkvm/kvm_aarch64.c	Wed Dec 19 11:02:21 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.7 2018/12/19 11:00:09 mrg Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.8 2018/12/19 11:02:21 mrg Exp $ */
 
 /*-
  * Copyright (c) 2014, 2018 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.7 2018/12/19 11:00:09 mrg Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.8 2018/12/19 11:02:21 mrg Exp $");
 
 /*ARGSUSED*/
 void
@@ -146,7 +146,7 @@ lose:
 
 		if ((pte & LX_TYPE) == LX_TYPE_BLK) {
 			const size_t blk_size = 1 << addr_shift;
-			const paddr_t blk_mask = __BITS(addr_shift - 1, 0);
+			const uint64_t blk_mask = __BITS(addr_shift - 1, 0);
 
 			*pa = (pte & page_addr & ~blk_mask) | (va & blk_mask);
 			return blk_size - (va & blk_mask);



CVS commit: src/lib/libkvm

2018-12-19 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Dec 19 11:00:09 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
use uint64_t for idx_mask.  fixes lookups for some PAs.  from skrll.

bump copyright.  we updated this a lot of this in 2018.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.6 src/lib/libkvm/kvm_aarch64.c:1.7
--- src/lib/libkvm/kvm_aarch64.c:1.6	Tue Dec 18 16:25:47 2018
+++ src/lib/libkvm/kvm_aarch64.c	Wed Dec 19 11:00:09 2018
@@ -1,7 +1,7 @@
-/* $NetBSD: kvm_aarch64.c,v 1.6 2018/12/18 16:25:47 skrll Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.7 2018/12/19 11:00:09 mrg Exp $ */
 
 /*-
- * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * Copyright (c) 2014, 2018 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
@@ -48,7 +48,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.6 2018/12/18 16:25:47 skrll Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.7 2018/12/19 11:00:09 mrg Exp $");
 
 /*ARGSUSED*/
 void
@@ -127,7 +127,8 @@ lose:
 		pt_entry_t pte;
 
 		/* now index into the pte table */
-		const u_int idx_mask =  __BITS(addr_shift + pte_shift - 1, addr_shift);
+		const uint64_t idx_mask = __BITS(addr_shift + pte_shift - 1,
+		 addr_shift);
 		pte_addr += 8 * __SHIFTOUT(va, idx_mask);
 
 		/* Find and read the PTE. */



CVS commit: src/lib/libkvm

2018-12-19 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Dec 19 11:00:09 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
use uint64_t for idx_mask.  fixes lookups for some PAs.  from skrll.

bump copyright.  we updated this a lot of this in 2018.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-12-18 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Tue Dec 18 16:25:47 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
Fix _kvm_kvatop so that it now works.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-12-18 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Tue Dec 18 16:25:47 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
Fix _kvm_kvatop so that it now works.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.5 src/lib/libkvm/kvm_aarch64.c:1.6
--- src/lib/libkvm/kvm_aarch64.c:1.5	Fri Nov  9 04:06:40 2018
+++ src/lib/libkvm/kvm_aarch64.c	Tue Dec 18 16:25:47 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.5 2018/11/09 04:06:40 mrg Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.6 2018/12/18 16:25:47 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.5 2018/11/09 04:06:40 mrg Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.6 2018/12/18 16:25:47 skrll Exp $");
 
 /*ARGSUSED*/
 void
@@ -83,27 +83,24 @@ lose:
 	}
 
 	const cpu_kcore_hdr_t * const cpu_kh = kd->cpu_data;
-	const uint64_t tg1 = cpu_kh->kh_tcr1 & TCR_TG1; 
+	const uint64_t tg1 = cpu_kh->kh_tcr1 & TCR_TG1;
 	const u_int t1siz = __SHIFTOUT(cpu_kh->kh_tcr1, TCR_T1SZ);
+	const u_int inputsz = 64 - t1siz;
 
 	/*
 	 * Real kernel virtual address: do the translation.
 	 */
 
-	u_int va_bits;
 	u_int page_shift;
 
 	switch (tg1) {
 	case TCR_TG1_4KB:
-		va_bits = t1siz + 36;
 		page_shift = 12;
 		break;
 	case TCR_TG1_16KB:
-		va_bits = 48;
 		page_shift = 14;
 		break;
 	case TCR_TG1_64KB:
-		va_bits = t1siz + 38;
 		page_shift = 16;
 		break;
 	default:
@@ -111,28 +108,27 @@ lose:
 	}
 
 	const size_t page_size = 1 << page_shift;
-	const uint64_t page_mask = (page_size - 1);
-	const uint64_t page_addr = __BITS(47, 0) & ~page_mask;
-	const uint64_t pte_mask = page_mask >> 3;
+	const uint64_t page_mask = __BITS(page_shift - 1, 0);
+	const uint64_t page_addr = __BITS(47, page_shift);
 	const u_int pte_shift = page_shift - 3;
 
-	/* how many level of page tables do we have? */
-	u_int level = (48 + page_shift - 1) / page_shift;
+	/* how many levels of page tables do we have? */
+	u_int levels = howmany(inputsz - page_shift, pte_shift);
 
 	/* restrict va to the valid VA bits */
-	va &= (1LL << va_bits) - 1;
+	va &= __BITS(inputsz - 1, 0);
 
-	u_int addr_shift = page_shift + (level - 1) * pte_shift;
+	u_int addr_shift = page_shift + (levels - 1) * pte_shift;
 
 	/* clear out the unused low bits of the table address */
-	paddr_t pte_addr = (cpu_kh->kh_ttbr1 & TTBR_BADDR);
-	pte_addr &= ~((8L << (va_bits - addr_shift)) - 1);
+	paddr_t pte_addr = cpu_kh->kh_ttbr1 & TTBR_BADDR;
 
 	for (;;) {
 		pt_entry_t pte;
 
 		/* now index into the pte table */
-		pte_addr += 8 * ((va >> addr_shift) & pte_mask);
+		const u_int idx_mask =  __BITS(addr_shift + pte_shift - 1, addr_shift);
+		pte_addr += 8 * __SHIFTOUT(va, idx_mask);
 
 		/* Find and read the PTE. */
 		if (_kvm_pread(kd, kd->pmfd, , sizeof(pte),
@@ -148,15 +144,15 @@ lose:
 		}
 
 		if ((pte & LX_TYPE) == LX_TYPE_BLK) {
-			const paddr_t blk_mask = ((1L << addr_shift) - 1);
+			const size_t blk_size = 1 << addr_shift;
+			const paddr_t blk_mask = __BITS(addr_shift - 1, 0);
 
 			*pa = (pte & page_addr & ~blk_mask) | (va & blk_mask);
-			return 0;
+			return blk_size - (va & blk_mask);
 		}
-
-		if (level == page_shift) {
+		if (--levels == 0) {
 			*pa = (pte & page_addr) | (va & page_mask);
-			return 0;
+			return page_size - (va & page_mask); 
 		}
 
 		/*



CVS commit: src/lib/libkvm

2018-12-11 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Tue Dec 11 23:02:19 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getloadavg.3

Log Message:
Reword post mortem description. It tries to get the tree averages if it can.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm_getloadavg.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_getloadavg.3
diff -u src/lib/libkvm/kvm_getloadavg.3:1.12 src/lib/libkvm/kvm_getloadavg.3:1.13
--- src/lib/libkvm/kvm_getloadavg.3:1.12	Tue Dec 11 02:29:11 2018
+++ src/lib/libkvm/kvm_getloadavg.3	Tue Dec 11 23:02:19 2018
@@ -1,4 +1,4 @@
-.\"	$NetBSD: kvm_getloadavg.3,v 1.12 2018/12/11 02:29:11 sevan Exp $
+.\"	$NetBSD: kvm_getloadavg.3,v 1.13 2018/12/11 23:02:19 sevan Exp $
 .\"
 .\" Copyright (c) 1992, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -58,8 +58,8 @@ On a live system, the load average is ob
 .Xr getloadavg 3 .
 If performing post mortem on a kernel core file,
 .Nm
-obtains the system load average at the time of death from the core file
-directly.
+is able to extract the system load averages at the time of death from the core
+file directly.
 .Sh RETURN VALUES
 If the load average was unobtainable, \-1 is returned; otherwise,
 the number of samples actually retrieved is returned.



CVS commit: src/lib/libkvm

2018-12-11 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Tue Dec 11 23:02:19 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getloadavg.3

Log Message:
Reword post mortem description. It tries to get the tree averages if it can.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm_getloadavg.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-12-10 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Tue Dec 11 02:29:11 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getloadavg.3

Log Message:
Clarify the difference to getloadavg(3).


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm_getloadavg.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-12-10 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Tue Dec 11 02:29:11 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getloadavg.3

Log Message:
Clarify the difference to getloadavg(3).


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm_getloadavg.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_getloadavg.3
diff -u src/lib/libkvm/kvm_getloadavg.3:1.11 src/lib/libkvm/kvm_getloadavg.3:1.12
--- src/lib/libkvm/kvm_getloadavg.3:1.11	Tue Mar 10 23:49:07 2009
+++ src/lib/libkvm/kvm_getloadavg.3	Tue Dec 11 02:29:11 2018
@@ -1,4 +1,4 @@
-.\"	$NetBSD: kvm_getloadavg.3,v 1.11 2009/03/10 23:49:07 joerg Exp $
+.\"	$NetBSD: kvm_getloadavg.3,v 1.12 2018/12/11 02:29:11 sevan Exp $
 .\"
 .\" Copyright (c) 1992, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,12 +29,12 @@
 .\"
 .\" @(#)kvm_getloadavg.3	8.1 (Berkeley) 6/4/93
 .\"
-.Dd August 18, 2002
+.Dd December 11, 2018
 .Dt KVM_GETLOADAVG 3
 .Os
 .Sh NAME
 .Nm kvm_getloadavg
-.Nd get system load averages
+.Nd get system load averages, from live or dead kernels
 .Sh LIBRARY
 .Lb libkvm
 .Sh SYNOPSIS
@@ -46,15 +46,20 @@
 The
 .Fn kvm_getloadavg
 function returns the number of processes in the system run queue
-of the kernel indicated by
-.Fa kd ,
-averaged over various periods of time.
+of the kernel or core file, indicated by
+.Fa kd .
 Up to
 .Fa nelem
 samples are retrieved and assigned to successive elements of
 .Fa loadavg Ns Bq .
 The system imposes a maximum of 3 samples, representing averages
 over the last 1, 5, and 15 minutes, respectively.
+On a live system, the load average is obtained by calling
+.Xr getloadavg 3 .
+If performing post mortem on a kernel core file,
+.Nm
+obtains the system load average at the time of death from the core file
+directly.
 .Sh RETURN VALUES
 If the load average was unobtainable, \-1 is returned; otherwise,
 the number of samples actually retrieved is returned.



CVS commit: src/lib/libkvm

2018-11-08 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Fri Nov  9 04:06:40 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
tg1 is a 64 bit value, store it in a 64 bit variable.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.4 src/lib/libkvm/kvm_aarch64.c:1.5
--- src/lib/libkvm/kvm_aarch64.c:1.4	Thu Nov  1 05:37:11 2018
+++ src/lib/libkvm/kvm_aarch64.c	Fri Nov  9 04:06:40 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.4 2018/11/01 05:37:11 mrg Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.5 2018/11/09 04:06:40 mrg Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.4 2018/11/01 05:37:11 mrg Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.5 2018/11/09 04:06:40 mrg Exp $");
 
 /*ARGSUSED*/
 void
@@ -83,7 +83,7 @@ lose:
 	}
 
 	const cpu_kcore_hdr_t * const cpu_kh = kd->cpu_data;
-	const u_int tg1 = cpu_kh->kh_tcr1 & TCR_TG1; 
+	const uint64_t tg1 = cpu_kh->kh_tcr1 & TCR_TG1; 
 	const u_int t1siz = __SHIFTOUT(cpu_kh->kh_tcr1, TCR_T1SZ);
 
 	/*



CVS commit: src/lib/libkvm

2018-11-08 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Fri Nov  9 04:06:40 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
tg1 is a 64 bit value, store it in a 64 bit variable.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-11-04 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Mon Nov  5 00:43:30 UTC 2018

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
initialise the kvm errbuf so that if an error occurs, but the
internal _kvm_*err() functions aren't called, stack garbage is
not reported as an error string.

call _kvm_err() if _kvm_kvatop() fails.  now the above is not
triggered anymore :-)


To generate a diff of this commit:
cvs rdiff -u -r1.103 -r1.104 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.103 src/lib/libkvm/kvm.c:1.104
--- src/lib/libkvm/kvm.c:1.103	Wed Feb  7 14:03:18 2018
+++ src/lib/libkvm/kvm.c	Mon Nov  5 00:43:30 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.103 2018/02/07 14:03:18 maxv Exp $	*/
+/*	$NetBSD: kvm.c,v 1.104 2018/11/05 00:43:30 mrg Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.103 2018/02/07 14:03:18 maxv Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.104 2018/11/05 00:43:30 mrg Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -255,6 +255,7 @@ _kvm_open(kvm_t *kd, const char *uf, con
 	kd->fdalign = 1;
 	kd->iobuf = NULL;
 	kd->iobufsz = 0;
+	kd->errbuf[0] = '\0';
 
 	if (flag & KVM_NO_FILES) {
 		kd->alive = KVM_ALIVE_SYSCTL;
@@ -851,8 +852,10 @@ kvm_read(kvm_t *kd, u_long kva, void *bu
 			off_t	foff;
 
 			cc = _kvm_kvatop(kd, (vaddr_t)kva, );
-			if (cc == 0)
+			if (cc == 0) {
+_kvm_err(kd, kd->program, "_kvm_kvatop(%lx)", kva);
 return (-1);
+			}
 			if (cc > len)
 cc = len;
 			foff = _kvm_pa2off(kd, pa);



CVS commit: src/lib/libkvm

2018-11-04 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Mon Nov  5 00:43:30 UTC 2018

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
initialise the kvm errbuf so that if an error occurs, but the
internal _kvm_*err() functions aren't called, stack garbage is
not reported as an error string.

call _kvm_err() if _kvm_kvatop() fails.  now the above is not
triggered anymore :-)


To generate a diff of this commit:
cvs rdiff -u -r1.103 -r1.104 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-10-31 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Nov  1 05:37:12 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
compare matching TG1 bits.

aarch64 crash dump kvtop now less broken, but still not stable.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_aarch64.c
diff -u src/lib/libkvm/kvm_aarch64.c:1.3 src/lib/libkvm/kvm_aarch64.c:1.4
--- src/lib/libkvm/kvm_aarch64.c:1.3	Sun Apr  1 04:35:02 2018
+++ src/lib/libkvm/kvm_aarch64.c	Thu Nov  1 05:37:11 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_aarch64.c,v 1.3 2018/04/01 04:35:02 ryo Exp $ */
+/* $NetBSD: kvm_aarch64.c,v 1.4 2018/11/01 05:37:11 mrg Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
 
 #include "kvm_private.h"
 
-__RCSID("$NetBSD: kvm_aarch64.c,v 1.3 2018/04/01 04:35:02 ryo Exp $");
+__RCSID("$NetBSD: kvm_aarch64.c,v 1.4 2018/11/01 05:37:11 mrg Exp $");
 
 /*ARGSUSED*/
 void
@@ -83,7 +83,7 @@ lose:
 	}
 
 	const cpu_kcore_hdr_t * const cpu_kh = kd->cpu_data;
-	const u_int tg1 =__SHIFTOUT(cpu_kh->kh_tcr1, TCR_TG1); 
+	const u_int tg1 = cpu_kh->kh_tcr1 & TCR_TG1; 
 	const u_int t1siz = __SHIFTOUT(cpu_kh->kh_tcr1, TCR_T1SZ);
 
 	/*



CVS commit: src/lib/libkvm

2018-10-31 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Nov  1 05:37:12 UTC 2018

Modified Files:
src/lib/libkvm: kvm_aarch64.c

Log Message:
compare matching TG1 bits.

aarch64 crash dump kvtop now less broken, but still not stable.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/lib/libkvm/kvm_aarch64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



re: CVS commit: src/lib/libkvm

2018-02-07 Thread matthew green
matthew green writes:
> "Maxime Villard" writes:
> > Module Name:src
> > Committed By:   maxv
> > Date:   Wed Feb  7 14:03:18 UTC 2018
> > 
> > Modified Files:
> > src/lib/libkvm: kvm.c
> > 
> > Log Message:
> > Keep /dev/ksyms open in _kvm_open(). This way /dev/ksyms can be put into
> > $g_kmem without breaking the tools that need kmem+ksyms.
> > 
> > Discussed on tech-kern@ three weeks ago. The original issue was reported
> > by maya@, the patch was written by Tom Ivar Helbekkmo, ok christos@.
> 
> hmmm, it just occurs to me that this is not safe against me
> re-opening /proc/mypid/N to get another fd on /dev/ksyms as
> a normal user.
> 
> i wonder if this pattern exists elsewhere...

ah, it shouldn't be a problem -- the user/group/mode are
taken from the original file, so whatever /dev/ksyms is.


.mrg.


re: CVS commit: src/lib/libkvm

2018-02-07 Thread matthew green
"Maxime Villard" writes:
> Module Name:  src
> Committed By: maxv
> Date: Wed Feb  7 14:03:18 UTC 2018
> 
> Modified Files:
>   src/lib/libkvm: kvm.c
> 
> Log Message:
> Keep /dev/ksyms open in _kvm_open(). This way /dev/ksyms can be put into
> $g_kmem without breaking the tools that need kmem+ksyms.
> 
> Discussed on tech-kern@ three weeks ago. The original issue was reported
> by maya@, the patch was written by Tom Ivar Helbekkmo, ok christos@.

hmmm, it just occurs to me that this is not safe against me
re-opening /proc/mypid/N to get another fd on /dev/ksyms as
a normal user.

i wonder if this pattern exists elsewhere...


.mrg.


CVS commit: src/lib/libkvm

2018-02-07 Thread Maxime Villard
Module Name:src
Committed By:   maxv
Date:   Wed Feb  7 14:03:18 UTC 2018

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Keep /dev/ksyms open in _kvm_open(). This way /dev/ksyms can be put into
$g_kmem without breaking the tools that need kmem+ksyms.

Discussed on tech-kern@ three weeks ago. The original issue was reported
by maya@, the patch was written by Tom Ivar Helbekkmo, ok christos@.


To generate a diff of this commit:
cvs rdiff -u -r1.102 -r1.103 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-02-07 Thread Maxime Villard
Module Name:src
Committed By:   maxv
Date:   Wed Feb  7 14:03:18 UTC 2018

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Keep /dev/ksyms open in _kvm_open(). This way /dev/ksyms can be put into
$g_kmem without breaking the tools that need kmem+ksyms.

Discussed on tech-kern@ three weeks ago. The original issue was reported
by maya@, the patch was written by Tom Ivar Helbekkmo, ok christos@.


To generate a diff of this commit:
cvs rdiff -u -r1.102 -r1.103 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.102 src/lib/libkvm/kvm.c:1.103
--- src/lib/libkvm/kvm.c:1.102	Tue Mar 29 06:51:40 2016
+++ src/lib/libkvm/kvm.c	Wed Feb  7 14:03:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.102 2016/03/29 06:51:40 mrg Exp $	*/
+/*	$NetBSD: kvm.c,v 1.103 2018/02/07 14:03:18 maxv Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.102 2016/03/29 06:51:40 mrg Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.103 2018/02/07 14:03:18 maxv Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -322,15 +322,6 @@ _kvm_open(kvm_t *kd, const char *uf, con
 		strlcpy(kd->kernelname, uf, sizeof(kd->kernelname));
 	} else {
 		strlcpy(kd->kernelname, _PATH_KSYMS, sizeof(kd->kernelname));
-		/*
-		 * We're here because /dev/ksyms was opened
-		 * successfully.  However, we don't want to keep it
-		 * open, so we close it now.  Later, we will open
-		 * it again, since it will be the only case where
-		 * kd->nlfd is negative.
-		 */
-		close(kd->nlfd);
-		kd->nlfd = -1;
 	}
 
 	if ((kd->pmfd = open(mf, flag | O_CLOEXEC, 0)) < 0) {
@@ -769,33 +760,16 @@ kvm_close(kvm_t *kd)
 int
 kvm_nlist(kvm_t *kd, struct nlist *nl)
 {
-	int rv, nlfd;
-
-	/*
-	 * kd->nlfd might be negative when we get here, and in that
-	 * case that means that we're using /dev/ksyms.
-	 * So open it again, just for the time we retrieve the list.
-	 */
-	if (kd->nlfd < 0) {
-		nlfd = open(_PATH_KSYMS, O_RDONLY | O_CLOEXEC, 0);
-		if (nlfd < 0) {
-			_kvm_err(kd, 0, "failed to open %s", _PATH_KSYMS);
-			return (nlfd);
-		}
-	} else
-		nlfd = kd->nlfd;
+	int rv;
 
 	/*
 	 * Call the nlist(3) routines to retrieve the given namelist.
 	 */
-	rv = __fdnlist(nlfd, nl);
+	rv = __fdnlist(kd->nlfd, nl);
 
 	if (rv == -1)
 		_kvm_err(kd, 0, "bad namelist");
 
-	if (kd->nlfd < 0)
-		close(nlfd);
-
 	return (rv);
 }
 



CVS commit: src/lib/libkvm

2018-01-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Tue Jan  9 21:17:46 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getprocs.3

Log Message:
Correct the signature of kvm_getproc2(3) in the man-page.

The elemsize argument is of type "size_t", not "int".

Sponsored by 


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libkvm/kvm_getprocs.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_getprocs.3
diff -u src/lib/libkvm/kvm_getprocs.3:1.16 src/lib/libkvm/kvm_getprocs.3:1.17
--- src/lib/libkvm/kvm_getprocs.3:1.16	Sun Oct 22 14:25:33 2017
+++ src/lib/libkvm/kvm_getprocs.3	Tue Jan  9 21:17:45 2018
@@ -1,4 +1,4 @@
-.\"	$NetBSD: kvm_getprocs.3,v 1.16 2017/10/22 14:25:33 abhinav Exp $
+.\"	$NetBSD: kvm_getprocs.3,v 1.17 2018/01/09 21:17:45 kamil Exp $
 .\"
 .\" Copyright (c) 1992, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -33,7 +33,7 @@
 .\"
 .\" @(#)kvm_getprocs.3	8.1 (Berkeley) 6/4/93
 .\"
-.Dd February 10, 2004
+.Dd January 9, 2018
 .Dt KVM_GETPROCS 3
 .Os
 .Sh NAME
@@ -58,7 +58,7 @@
 .Ft char **
 .Fn kvm_getenvv "kvm_t *kd" "const struct kinfo_proc *p" "int nchr"
 .Ft struct kinfo_proc2 *
-.Fn kvm_getproc2 "kvm_t *kd" "int op" "int arg" "int elemsize" "int *cnt"
+.Fn kvm_getproc2 "kvm_t *kd" "int op" "int arg" "size_t elemsize" "int *cnt"
 .Ft char **
 .Fn kvm_getargv2 "kvm_t *kd" "const struct kinfo_proc2 *p" "int nchr"
 .Ft char **



CVS commit: src/lib/libkvm

2018-01-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Tue Jan  9 21:17:46 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getprocs.3

Log Message:
Correct the signature of kvm_getproc2(3) in the man-page.

The elemsize argument is of type "size_t", not "int".

Sponsored by 


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libkvm/kvm_getprocs.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2018-01-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Tue Jan  9 21:13:59 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getlwps.3

Log Message:
Correct the signature of kvm_getlwps(3) in the man-page.

The elemsize argument is of type "size_t", not "int *".

Sponsored by 


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_getlwps.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_getlwps.3
diff -u src/lib/libkvm/kvm_getlwps.3:1.7 src/lib/libkvm/kvm_getlwps.3:1.8
--- src/lib/libkvm/kvm_getlwps.3:1.7	Sat Jan 23 00:43:43 2016
+++ src/lib/libkvm/kvm_getlwps.3	Tue Jan  9 21:13:59 2018
@@ -1,4 +1,4 @@
-.\"	$NetBSD: kvm_getlwps.3,v 1.7 2016/01/23 00:43:43 dholland Exp $
+.\"	$NetBSD: kvm_getlwps.3,v 1.8 2018/01/09 21:13:59 kamil Exp $
 .\"
 .\"Copyright (c) 2002 The NetBSD Foundation, Inc.
 .\"All rights reserved.
@@ -27,7 +27,7 @@
 .\"ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\"POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd February 10, 2004
+.Dd January 9, 2018
 .Dt KVM_GETLWPS 3
 .Os
 .Sh NAME
@@ -41,7 +41,7 @@
 .In sys/sysctl.h
 .\" .Fa kvm_t *kd
 .Ft struct kinfo_lwp *
-.Fn kvm_getlwps "kvm_t *kd" "int pid" "unsigned long procaddr" "int *elemsize" "int *cnt"
+.Fn kvm_getlwps "kvm_t *kd" "int pid" "unsigned long procaddr" "size_t elemsize" "int *cnt"
 .Sh DESCRIPTION
 .Fn kvm_getlwps
 returns the set of LWPs belonging to the process specified by



CVS commit: src/lib/libkvm

2018-01-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Tue Jan  9 21:13:59 UTC 2018

Modified Files:
src/lib/libkvm: kvm_getlwps.3

Log Message:
Correct the signature of kvm_getlwps(3) in the man-page.

The elemsize argument is of type "size_t", not "int *".

Sponsored by 


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libkvm/kvm_getlwps.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2017-10-22 Thread Abhinav Upadhyay
Module Name:src
Committed By:   abhinav
Date:   Sun Oct 22 14:25:33 UTC 2017

Modified Files:
src/lib/libkvm: kvm_getprocs.3

Log Message:
Add rest of the functions from the SYNOPSIS to the NAME section


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/lib/libkvm/kvm_getprocs.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_getprocs.3
diff -u src/lib/libkvm/kvm_getprocs.3:1.15 src/lib/libkvm/kvm_getprocs.3:1.16
--- src/lib/libkvm/kvm_getprocs.3:1.15	Tue Mar 10 23:49:07 2009
+++ src/lib/libkvm/kvm_getprocs.3	Sun Oct 22 14:25:33 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: kvm_getprocs.3,v 1.15 2009/03/10 23:49:07 joerg Exp $
+.\"	$NetBSD: kvm_getprocs.3,v 1.16 2017/10/22 14:25:33 abhinav Exp $
 .\"
 .\" Copyright (c) 1992, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -39,7 +39,10 @@
 .Sh NAME
 .Nm kvm_getprocs ,
 .Nm kvm_getargv ,
-.Nm kvm_getenvv
+.Nm kvm_getenvv ,
+.Nm kvm_getproc2 ,
+.Nm kvm_getargv2 ,
+.Nm kvm_getenvv2
 .Nd access user process state
 .Sh LIBRARY
 .Lb libkvm



CVS commit: src/lib/libkvm

2017-10-22 Thread Abhinav Upadhyay
Module Name:src
Committed By:   abhinav
Date:   Sun Oct 22 14:25:33 UTC 2017

Modified Files:
src/lib/libkvm: kvm_getprocs.3

Log Message:
Add rest of the functions from the SYNOPSIS to the NAME section


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/lib/libkvm/kvm_getprocs.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2016-04-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Apr  4 22:14:38 UTC 2016

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
some ports need 


To generate a diff of this commit:
cvs rdiff -u -r1.91 -r1.92 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_proc.c
diff -u src/lib/libkvm/kvm_proc.c:1.91 src/lib/libkvm/kvm_proc.c:1.92
--- src/lib/libkvm/kvm_proc.c:1.91	Mon Apr  4 17:08:44 2016
+++ src/lib/libkvm/kvm_proc.c	Mon Apr  4 18:14:38 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_proc.c,v 1.91 2016/04/04 21:08:44 christos Exp $	*/
+/*	$NetBSD: kvm_proc.c,v 1.92 2016/04/04 22:14:38 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
 #else
-__RCSID("$NetBSD: kvm_proc.c,v 1.91 2016/04/04 21:08:44 christos Exp $");
+__RCSID("$NetBSD: kvm_proc.c,v 1.92 2016/04/04 22:14:38 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -80,6 +80,7 @@ __RCSID("$NetBSD: kvm_proc.c,v 1.91 2016
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 



CVS commit: src/lib/libkvm

2016-04-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Apr  4 22:14:38 UTC 2016

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
some ports need 


To generate a diff of this commit:
cvs rdiff -u -r1.91 -r1.92 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2016-04-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Apr  4 21:08:44 UTC 2016

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
catch up with p_xstat split.


To generate a diff of this commit:
cvs rdiff -u -r1.90 -r1.91 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_proc.c
diff -u src/lib/libkvm/kvm_proc.c:1.90 src/lib/libkvm/kvm_proc.c:1.91
--- src/lib/libkvm/kvm_proc.c:1.90	Wed Feb 19 15:21:22 2014
+++ src/lib/libkvm/kvm_proc.c	Mon Apr  4 17:08:44 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_proc.c,v 1.90 2014/02/19 20:21:22 dsl Exp $	*/
+/*	$NetBSD: kvm_proc.c,v 1.91 2016/04/04 21:08:44 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_proc.c	8.3 (Berkeley) 9/23/93";
 #else
-__RCSID("$NetBSD: kvm_proc.c,v 1.90 2014/02/19 20:21:22 dsl Exp $");
+__RCSID("$NetBSD: kvm_proc.c,v 1.91 2016/04/04 21:08:44 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -638,7 +638,7 @@ again:
 			kp2p->p_usrpri = kl[0].l_priority;
 			kp2p->p_nice = kp->kp_proc.p_nice;
 
-			kp2p->p_xstat = kp->kp_proc.p_xstat;
+			kp2p->p_xstat = P_WAITSTATUS(>kp_proc);
 			kp2p->p_acflag = kp->kp_proc.p_acflag;
 
 			/*CONSTCOND*/



CVS commit: src/lib/libkvm

2016-04-04 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Apr  4 21:08:44 UTC 2016

Modified Files:
src/lib/libkvm: kvm_proc.c

Log Message:
catch up with p_xstat split.


To generate a diff of this commit:
cvs rdiff -u -r1.90 -r1.91 src/lib/libkvm/kvm_proc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2016-03-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Mar 29 06:51:40 UTC 2016

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
distinguish between partial and failed read, so that "read 0x bytes 
failed"
is not output..


To generate a diff of this commit:
cvs rdiff -u -r1.101 -r1.102 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.101 src/lib/libkvm/kvm.c:1.102
--- src/lib/libkvm/kvm.c:1.101	Wed Feb 19 20:21:22 2014
+++ src/lib/libkvm/kvm.c	Tue Mar 29 06:51:40 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.101 2014/02/19 20:21:22 dsl Exp $	*/
+/*	$NetBSD: kvm.c,v 1.102 2016/03/29 06:51:40 mrg Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm.c	8.2 (Berkeley) 2/13/94";
 #else
-__RCSID("$NetBSD: kvm.c,v 1.101 2014/02/19 20:21:22 dsl Exp $");
+__RCSID("$NetBSD: kvm.c,v 1.102 2016/03/29 06:51:40 mrg Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -515,9 +515,14 @@ kvm_dump_mkheader(kvm_t *kd, off_t dump_
 	 */
 	sz = Pread(kd, kd->pmfd, _hdr, sizeof(cpu_hdr), dump_off);
 	if (sz != sizeof(cpu_hdr)) {
-		_kvm_err(kd, 0, "read %zx bytes at offset %"PRIx64
-		" for cpu_hdr instead of requested %zu",
-		sz, dump_off, sizeof(cpu_hdr));
+		if (sz == -1)
+			_kvm_err(kd, 0, "read %zx bytes at offset %"PRIx64
+			" for cpu_hdr failed: %s", sizeof(cpu_hdr),
+			dump_off, strerror(errno));
+		else
+			_kvm_err(kd, 0, "read %zx bytes at offset %"PRIx64
+			" for cpu_hdr instead of requested %zu",
+			sz, dump_off, sizeof(cpu_hdr));
 		return (-1);
 	}
 	if ((CORE_GETMAGIC(cpu_hdr) != KCORE_MAGIC)



CVS commit: src/lib/libkvm

2016-03-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Mar 29 06:51:40 UTC 2016

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
distinguish between partial and failed read, so that "read 0x bytes 
failed"
is not output..


To generate a diff of this commit:
cvs rdiff -u -r1.101 -r1.102 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2016-01-24 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Jan 24 16:07:48 UTC 2016

Modified Files:
src/lib/libkvm: Makefile

Log Message:
mips needs _KMEMUSER for label_t in pcb.h


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 src/lib/libkvm/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/Makefile
diff -u src/lib/libkvm/Makefile:1.50 src/lib/libkvm/Makefile:1.51
--- src/lib/libkvm/Makefile:1.50	Sun Aug 10 19:39:08 2014
+++ src/lib/libkvm/Makefile	Sun Jan 24 11:07:48 2016
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.50 2014/08/10 23:39:08 matt Exp $
+#	$NetBSD: Makefile,v 1.51 2016/01/24 16:07:48 christos Exp $
 #	from: @(#)Makefile	8.1 (Berkeley) 6/4/93
 
 WARNS=	3
@@ -70,5 +70,9 @@ CLEANFILES+=	machine sparc
 CPPFLAGS+=	-I.
 .endif	# }
 
+.if (${MACHINE_ARCH} == "mips")
+CPPFLAGS+=	-D_KMEMUSER
+.endif
+
 
 .include 



CVS commit: src/lib/libkvm

2016-01-24 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sun Jan 24 16:07:48 UTC 2016

Modified Files:
src/lib/libkvm: Makefile

Log Message:
mips needs _KMEMUSER for label_t in pcb.h


To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 src/lib/libkvm/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2015-10-30 Thread Takeshi Nakayama
Module Name:src
Committed By:   nakayama
Date:   Sat Oct 31 02:40:44 UTC 2015

Modified Files:
src/lib/libkvm: kvm_sparc.c

Log Message:
Use PRIxPADDR instead of type casting.


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/lib/libkvm/kvm_sparc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2015-10-30 Thread Takeshi Nakayama
Module Name:src
Committed By:   nakayama
Date:   Sat Oct 31 02:40:44 UTC 2015

Modified Files:
src/lib/libkvm: kvm_sparc.c

Log Message:
Use PRIxPADDR instead of type casting.


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/lib/libkvm/kvm_sparc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_sparc.c
diff -u src/lib/libkvm/kvm_sparc.c:1.34 src/lib/libkvm/kvm_sparc.c:1.35
--- src/lib/libkvm/kvm_sparc.c:1.34	Wed Oct  7 11:56:41 2015
+++ src/lib/libkvm/kvm_sparc.c	Sat Oct 31 02:40:44 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_sparc.c,v 1.34 2015/10/07 11:56:41 martin Exp $	*/
+/*	$NetBSD: kvm_sparc.c,v 1.35 2015/10/31 02:40:44 nakayama Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_sparc.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: kvm_sparc.c,v 1.34 2015/10/07 11:56:41 martin Exp $");
+__RCSID("$NetBSD: kvm_sparc.c,v 1.35 2015/10/31 02:40:44 nakayama Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -363,7 +363,7 @@ _kvm_pa2off(kvm_t *kd, paddr_t pa)
 		off += mp->size;
 	}
 	if (nmem < 0) {
-		_kvm_err(kd, 0, "invalid address (%lx)", (unsigned long)pa);
+		_kvm_err(kd, 0, "invalid address (%#"PRIxPADDR")", pa);
 		return (-1);
 	}
 



CVS commit: src/lib/libkvm

2015-10-07 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Wed Oct  7 11:56:41 UTC 2015

Modified Files:
src/lib/libkvm: kvm_sparc.c

Log Message:
Fix the -m32 compat build for sparc64 after recent sparc/include/types.h
changes. XXX I suspect this variant has not been tested in real life.


To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/lib/libkvm/kvm_sparc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_sparc.c
diff -u src/lib/libkvm/kvm_sparc.c:1.33 src/lib/libkvm/kvm_sparc.c:1.34
--- src/lib/libkvm/kvm_sparc.c:1.33	Wed Feb 19 20:21:22 2014
+++ src/lib/libkvm/kvm_sparc.c	Wed Oct  7 11:56:41 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_sparc.c,v 1.33 2014/02/19 20:21:22 dsl Exp $	*/
+/*	$NetBSD: kvm_sparc.c,v 1.34 2015/10/07 11:56:41 martin Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = "@(#)kvm_sparc.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: kvm_sparc.c,v 1.33 2014/02/19 20:21:22 dsl Exp $");
+__RCSID("$NetBSD: kvm_sparc.c,v 1.34 2015/10/07 11:56:41 martin Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -325,8 +325,8 @@ _kvm_kvatop4u(kvm_t *kd, vaddr_t va, pad
 	 *	segmap[cpup->nsegmap];
 	 */
 	segmaps = (int64_t **)((long)kd->cpu_data + cpup->segmapoffset);
-	ptes = (int64_t *)(int)_kvm_pa2off(kd,
-	(paddr_t)segmaps[sparc64_va_to_seg(va)]);
+	ptes = (int64_t *)(intptr_t)_kvm_pa2off(kd,
+	(paddr_t)(intptr_t)segmaps[sparc64_va_to_seg(va)]);
 	pte = ptes[sparc64_va_to_pte(va)];
 	if ((pte & SPARC64_TLB_V) != 0)
 		return ((pte & SPARC64_TLB_PA_MASK) | (va & (kd->nbpg - 1)));
@@ -363,7 +363,7 @@ _kvm_pa2off(kvm_t *kd, paddr_t pa)
 		off += mp->size;
 	}
 	if (nmem < 0) {
-		_kvm_err(kd, 0, "invalid address (%lx)", pa);
+		_kvm_err(kd, 0, "invalid address (%lx)", (unsigned long)pa);
 		return (-1);
 	}
 



CVS commit: src/lib/libkvm

2015-10-07 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Wed Oct  7 11:56:41 UTC 2015

Modified Files:
src/lib/libkvm: kvm_sparc.c

Log Message:
Fix the -m32 compat build for sparc64 after recent sparc/include/types.h
changes. XXX I suspect this variant has not been tested in real life.


To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/lib/libkvm/kvm_sparc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2015-04-17 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Fri Apr 17 13:16:01 UTC 2015

Added Files:
src/lib/libkvm: kvm_ia64.c

Log Message:
Dummy support for ia64


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libkvm/kvm_ia64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2015-04-17 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Fri Apr 17 13:16:01 UTC 2015

Added Files:
src/lib/libkvm: kvm_ia64.c

Log Message:
Dummy support for ia64


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libkvm/kvm_ia64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:




CVS commit: src/lib/libkvm

2014-08-22 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Aug 23 02:25:23 UTC 2014

Modified Files:
src/lib/libkvm: kvm_powerpc64.c

Log Message:
#if 0 some code not in use yet


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libkvm/kvm_powerpc64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_powerpc64.c
diff -u src/lib/libkvm/kvm_powerpc64.c:1.5 src/lib/libkvm/kvm_powerpc64.c:1.6
--- src/lib/libkvm/kvm_powerpc64.c:1.5	Mon Jan 27 21:00:01 2014
+++ src/lib/libkvm/kvm_powerpc64.c	Sat Aug 23 02:25:23 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_powerpc64.c,v 1.5 2014/01/27 21:00:01 matt Exp $	*/
+/*	$NetBSD: kvm_powerpc64.c,v 1.6 2014/08/23 02:25:23 matt Exp $	*/
 
 /*
  * Copyright (c) 2005 Wasabi Systems, Inc.
@@ -90,7 +90,7 @@
 #include powerpc/oea/bat.h
 #include powerpc/oea/pte.h
 
-__RCSID($NetBSD: kvm_powerpc64.c,v 1.5 2014/01/27 21:00:01 matt Exp $);
+__RCSID($NetBSD: kvm_powerpc64.c,v 1.6 2014/08/23 02:25:23 matt Exp $);
 
 void
 _kvm_freevtop(kvm_t *kd)
@@ -117,17 +117,16 @@ _kvm_initvtop(kvm_t *kd)
 int
 _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr_t *pa)
 {
-	cpu_kcore_hdr_t	*cpu_kh;
-	uint32_t	pvr;
 
 	if (ISALIVE(kd)) {
 		_kvm_err(kd, 0, vatop called in live kernel!);
 		return 0;
 	}
 
-	cpu_kh = kd-cpu_data;
-
-	pvr = (cpu_kh-pvr  16);
+#if 0
+	cpu_kcore_hdr_t	*cpu_kh = kd-cpu_data;
+	uint32_t pvr = (cpu_kh-pvr  16);
+#endif
 
 
 	/* No hit -- no translation */



CVS commit: src/lib/libkvm

2014-08-22 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Aug 23 02:25:23 UTC 2014

Modified Files:
src/lib/libkvm: kvm_powerpc64.c

Log Message:
#if 0 some code not in use yet


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libkvm/kvm_powerpc64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2014-03-03 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Mar  4 06:38:08 UTC 2014

Modified Files:
src/lib/libkvm: kvm_m68k_cmn.c

Log Message:
#include m68k/m68k.h


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/lib/libkvm/kvm_m68k_cmn.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_m68k_cmn.c
diff -u src/lib/libkvm/kvm_m68k_cmn.c:1.17 src/lib/libkvm/kvm_m68k_cmn.c:1.18
--- src/lib/libkvm/kvm_m68k_cmn.c:1.17	Tue Sep 13 19:11:09 2011
+++ src/lib/libkvm/kvm_m68k_cmn.c	Tue Mar  4 06:38:08 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_m68k_cmn.c,v 1.17 2011/09/13 19:11:09 christos Exp $	*/
+/*	$NetBSD: kvm_m68k_cmn.c,v 1.18 2014/03/04 06:38:08 matt Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -74,7 +74,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_hp300.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_m68k_cmn.c,v 1.17 2011/09/13 19:11:09 christos Exp $);
+__RCSID($NetBSD: kvm_m68k_cmn.c,v 1.18 2014/03/04 06:38:08 matt Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -97,6 +97,7 @@ __RCSID($NetBSD: kvm_m68k_cmn.c,v 1.17 
 
 #include m68k/cpu.h
 #include m68k/kcore.h
+#include m68k/m68k.h
 
 #include kvm_private.h
 #include kvm_m68k.h



CVS commit: src/lib/libkvm

2014-03-03 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Mar  4 06:38:08 UTC 2014

Modified Files:
src/lib/libkvm: kvm_m68k_cmn.c

Log Message:
#include m68k/m68k.h


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/lib/libkvm/kvm_m68k_cmn.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2014-02-19 Thread David Laight
Module Name:src
Committed By:   dsl
Date:   Wed Feb 19 20:21:22 UTC 2014

Modified Files:
src/lib/libkvm: kvm.c kvm_alpha.c kvm_file.c kvm_hppa.c kvm_i386.c
kvm_i386pae.c kvm_mips.c kvm_proc.c kvm_sh3.c kvm_sparc.c
kvm_sparc64.c kvm_vax.c kvm_x86_64.c

Log Message:
Remove the #include sys/user.h from all of libkvm.
sys/user.h is a stub that just #includes sys/pcb.h.
There are no 'struct pcb' anywhere in here, so I'm extremely doubtful
any of the builds will fail.
OTOH it might be relying on a header that pcb.h includes.
In any case i386 and amd64 build.


To generate a diff of this commit:
cvs rdiff -u -r1.100 -r1.101 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.26 -r1.27 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libkvm/kvm_file.c
cvs rdiff -u -r1.6 -r1.7 src/lib/libkvm/kvm_hppa.c
cvs rdiff -u -r1.29 -r1.30 src/lib/libkvm/kvm_i386.c
cvs rdiff -u -r1.1 -r1.2 src/lib/libkvm/kvm_i386pae.c
cvs rdiff -u -r1.21 -r1.22 src/lib/libkvm/kvm_mips.c
cvs rdiff -u -r1.89 -r1.90 src/lib/libkvm/kvm_proc.c
cvs rdiff -u -r1.8 -r1.9 src/lib/libkvm/kvm_sh3.c
cvs rdiff -u -r1.32 -r1.33 src/lib/libkvm/kvm_sparc.c
cvs rdiff -u -r1.15 -r1.16 src/lib/libkvm/kvm_sparc64.c
cvs rdiff -u -r1.19 -r1.20 src/lib/libkvm/kvm_vax.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.100 src/lib/libkvm/kvm.c:1.101
--- src/lib/libkvm/kvm.c:1.100	Sun Aug 26 23:09:42 2012
+++ src/lib/libkvm/kvm.c	Wed Feb 19 20:21:22 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.100 2012/08/26 23:09:42 martin Exp $	*/
+/*	$NetBSD: kvm.c,v 1.101 2014/02/19 20:21:22 dsl Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,12 +38,11 @@
 #if 0
 static char sccsid[] = @(#)kvm.c	8.2 (Berkeley) 2/13/94;
 #else
-__RCSID($NetBSD: kvm.c,v 1.100 2012/08/26 23:09:42 martin Exp $);
+__RCSID($NetBSD: kvm.c,v 1.101 2014/02/19 20:21:22 dsl Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
 #include sys/param.h
-#include sys/user.h
 #include sys/lwp.h
 #include sys/proc.h
 #include sys/ioctl.h

Index: src/lib/libkvm/kvm_alpha.c
diff -u src/lib/libkvm/kvm_alpha.c:1.26 src/lib/libkvm/kvm_alpha.c:1.27
--- src/lib/libkvm/kvm_alpha.c:1.26	Mon Jan 27 21:00:01 2014
+++ src/lib/libkvm/kvm_alpha.c	Wed Feb 19 20:21:22 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_alpha.c,v 1.26 2014/01/27 21:00:01 matt Exp $ */
+/* $NetBSD: kvm_alpha.c,v 1.27 2014/02/19 20:21:22 dsl Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -30,7 +30,6 @@
 #define	__KVM_ALPHA_PRIVATE		/* see machine/pte.h */
 
 #include sys/param.h
-#include sys/user.h
 #include sys/proc.h
 #include sys/stat.h
 #include sys/kcore.h
@@ -51,7 +50,7 @@
 
 #include kvm_private.h
 
-__RCSID($NetBSD: kvm_alpha.c,v 1.26 2014/01/27 21:00:01 matt Exp $);
+__RCSID($NetBSD: kvm_alpha.c,v 1.27 2014/02/19 20:21:22 dsl Exp $);
 
 /*ARGSUSED*/
 void

Index: src/lib/libkvm/kvm_file.c
diff -u src/lib/libkvm/kvm_file.c:1.28 src/lib/libkvm/kvm_file.c:1.29
--- src/lib/libkvm/kvm_file.c:1.28	Sun Sep 26 22:28:05 2010
+++ src/lib/libkvm/kvm_file.c	Wed Feb 19 20:21:22 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_file.c,v 1.28 2010/09/26 22:28:05 jym Exp $	*/
+/*	$NetBSD: kvm_file.c,v 1.29 2014/02/19 20:21:22 dsl Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_file.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_file.c,v 1.28 2010/09/26 22:28:05 jym Exp $);
+__RCSID($NetBSD: kvm_file.c,v 1.29 2014/02/19 20:21:22 dsl Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -49,7 +49,6 @@ __RCSID($NetBSD: kvm_file.c,v 1.28 2010
 #include sys/types.h
 #undef _KERNEL
 #include sys/param.h
-#include sys/user.h
 #include sys/lwp.h
 #include sys/proc.h
 #include sys/exec.h

Index: src/lib/libkvm/kvm_hppa.c
diff -u src/lib/libkvm/kvm_hppa.c:1.6 src/lib/libkvm/kvm_hppa.c:1.7
--- src/lib/libkvm/kvm_hppa.c:1.6	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_hppa.c	Wed Feb 19 20:21:22 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_hppa.c,v 1.6 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_hppa.c,v 1.7 2014/02/19 20:21:22 dsl Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_hp300.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_hppa.c,v 1.6 2010/09/20 23:23:16 jym Exp $);
+__RCSID($NetBSD: kvm_hppa.c,v 1.7 2014/02/19 20:21:22 dsl Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -49,7 +49,6 @@ __RCSID($NetBSD: kvm_hppa.c,v 1.6 2010/
  */
 
 #include sys/param.h
-#include sys/user.h
 #include sys/proc.h
 #include sys/stat.h
 #include sys/kcore.h

Index: src/lib/libkvm/kvm_i386.c
diff -u src/lib/libkvm/kvm_i386.c:1.29 src/lib/libkvm/kvm_i386.c:1.30
--- src/lib/libkvm/kvm_i386.c:1.29	Tue Oct  5 23:48:16 2010
+++ src/lib/libkvm/kvm_i386.c	Wed Feb 19 20:21:22 2014
@@ -1,4 +1,4 @@

CVS commit: src/lib/libkvm

2014-02-19 Thread David Laight
Module Name:src
Committed By:   dsl
Date:   Wed Feb 19 20:21:22 UTC 2014

Modified Files:
src/lib/libkvm: kvm.c kvm_alpha.c kvm_file.c kvm_hppa.c kvm_i386.c
kvm_i386pae.c kvm_mips.c kvm_proc.c kvm_sh3.c kvm_sparc.c
kvm_sparc64.c kvm_vax.c kvm_x86_64.c

Log Message:
Remove the #include sys/user.h from all of libkvm.
sys/user.h is a stub that just #includes sys/pcb.h.
There are no 'struct pcb' anywhere in here, so I'm extremely doubtful
any of the builds will fail.
OTOH it might be relying on a header that pcb.h includes.
In any case i386 and amd64 build.


To generate a diff of this commit:
cvs rdiff -u -r1.100 -r1.101 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.26 -r1.27 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libkvm/kvm_file.c
cvs rdiff -u -r1.6 -r1.7 src/lib/libkvm/kvm_hppa.c
cvs rdiff -u -r1.29 -r1.30 src/lib/libkvm/kvm_i386.c
cvs rdiff -u -r1.1 -r1.2 src/lib/libkvm/kvm_i386pae.c
cvs rdiff -u -r1.21 -r1.22 src/lib/libkvm/kvm_mips.c
cvs rdiff -u -r1.89 -r1.90 src/lib/libkvm/kvm_proc.c
cvs rdiff -u -r1.8 -r1.9 src/lib/libkvm/kvm_sh3.c
cvs rdiff -u -r1.32 -r1.33 src/lib/libkvm/kvm_sparc.c
cvs rdiff -u -r1.15 -r1.16 src/lib/libkvm/kvm_sparc64.c
cvs rdiff -u -r1.19 -r1.20 src/lib/libkvm/kvm_vax.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2014-01-27 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Jan 27 21:00:01 UTC 2014

Modified Files:
src/lib/libkvm: kvm_alpha.c kvm_m68k.c kvm_powerpc.c kvm_powerpc64.c
kvm_vax.c

Log Message:
Add missing __RCSID($NetBSD$);


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libkvm/kvm_m68k.c src/lib/libkvm/kvm_vax.c
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm_powerpc.c
cvs rdiff -u -r1.4 -r1.5 src/lib/libkvm/kvm_powerpc64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_alpha.c
diff -u src/lib/libkvm/kvm_alpha.c:1.25 src/lib/libkvm/kvm_alpha.c:1.26
--- src/lib/libkvm/kvm_alpha.c:1.25	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_alpha.c	Mon Jan 27 21:00:01 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_alpha.c,v 1.25 2010/09/20 23:23:16 jym Exp $ */
+/* $NetBSD: kvm_alpha.c,v 1.26 2014/01/27 21:00:01 matt Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -51,6 +51,8 @@
 
 #include kvm_private.h
 
+__RCSID($NetBSD: kvm_alpha.c,v 1.26 2014/01/27 21:00:01 matt Exp $);
+
 /*ARGSUSED*/
 void
 _kvm_freevtop(kvm_t *kd)

Index: src/lib/libkvm/kvm_m68k.c
diff -u src/lib/libkvm/kvm_m68k.c:1.18 src/lib/libkvm/kvm_m68k.c:1.19
--- src/lib/libkvm/kvm_m68k.c:1.18	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_m68k.c	Mon Jan 27 21:00:01 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_m68k.c,v 1.18 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_m68k.c,v 1.19 2014/01/27 21:00:01 matt Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -59,6 +59,8 @@
 #include kvm_private.h
 #include kvm_m68k.h
 
+__RCSID($NetBSD: kvm_m68k.c,v 1.19 2014/01/27 21:00:01 matt Exp $);
+
 struct name_ops {
 	const char *name;
 	struct kvm_ops *ops;
Index: src/lib/libkvm/kvm_vax.c
diff -u src/lib/libkvm/kvm_vax.c:1.18 src/lib/libkvm/kvm_vax.c:1.19
--- src/lib/libkvm/kvm_vax.c:1.18	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_vax.c	Mon Jan 27 21:00:01 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_vax.c,v 1.18 2010/09/20 23:23:16 jym Exp $ */
+/*	$NetBSD: kvm_vax.c,v 1.19 2014/01/27 21:00:01 matt Exp $ */
 
 /*-
  * Copyright (c) 1992, 1993
@@ -60,6 +60,7 @@
 
 #include kvm_private.h
 
+__RCSID($NetBSD: kvm_vax.c,v 1.19 2014/01/27 21:00:01 matt Exp $);
 
 struct vmstate {
 	u_long end;

Index: src/lib/libkvm/kvm_powerpc.c
diff -u src/lib/libkvm/kvm_powerpc.c:1.12 src/lib/libkvm/kvm_powerpc.c:1.13
--- src/lib/libkvm/kvm_powerpc.c:1.12	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_powerpc.c	Mon Jan 27 21:00:01 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_powerpc.c,v 1.12 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_powerpc.c,v 1.13 2014/01/27 21:00:01 matt Exp $	*/
 
 /*
  * Copyright (c) 2005 Wasabi Systems, Inc.
@@ -91,6 +91,8 @@
 #include powerpc/oea/bat.h
 #include powerpc/oea/pte.h
 
+__RCSID($NetBSD: kvm_powerpc.c,v 1.13 2014/01/27 21:00:01 matt Exp $);
+
 static int	_kvm_match_601bat(kvm_t *, vaddr_t, paddr_t *, int *);
 static int	_kvm_match_bat(kvm_t *, vaddr_t, paddr_t *, int *);
 static int	_kvm_match_sr(kvm_t *, vaddr_t, paddr_t *, int *);

Index: src/lib/libkvm/kvm_powerpc64.c
diff -u src/lib/libkvm/kvm_powerpc64.c:1.4 src/lib/libkvm/kvm_powerpc64.c:1.5
--- src/lib/libkvm/kvm_powerpc64.c:1.4	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_powerpc64.c	Mon Jan 27 21:00:01 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_powerpc64.c,v 1.4 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_powerpc64.c,v 1.5 2014/01/27 21:00:01 matt Exp $	*/
 
 /*
  * Copyright (c) 2005 Wasabi Systems, Inc.
@@ -90,6 +90,8 @@
 #include powerpc/oea/bat.h
 #include powerpc/oea/pte.h
 
+__RCSID($NetBSD: kvm_powerpc64.c,v 1.5 2014/01/27 21:00:01 matt Exp $);
+
 void
 _kvm_freevtop(kvm_t *kd)
 {



CVS commit: src/lib/libkvm

2014-01-27 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Jan 27 21:00:01 UTC 2014

Modified Files:
src/lib/libkvm: kvm_alpha.c kvm_m68k.c kvm_powerpc.c kvm_powerpc64.c
kvm_vax.c

Log Message:
Add missing __RCSID($NetBSD$);


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/lib/libkvm/kvm_alpha.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libkvm/kvm_m68k.c src/lib/libkvm/kvm_vax.c
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm_powerpc.c
cvs rdiff -u -r1.4 -r1.5 src/lib/libkvm/kvm_powerpc64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2012-08-26 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Aug 26 23:09:42 UTC 2012

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Do not fail kvm_dump_mkheader without setting an error message


To generate a diff of this commit:
cvs rdiff -u -r1.99 -r1.100 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.99 src/lib/libkvm/kvm.c:1.100
--- src/lib/libkvm/kvm.c:1.99	Sat Oct 15 21:08:53 2011
+++ src/lib/libkvm/kvm.c	Sun Aug 26 23:09:42 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.99 2011/10/15 21:08:53 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.100 2012/08/26 23:09:42 martin Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm.c	8.2 (Berkeley) 2/13/94;
 #else
-__RCSID($NetBSD: kvm.c,v 1.99 2011/10/15 21:08:53 christos Exp $);
+__RCSID($NetBSD: kvm.c,v 1.100 2012/08/26 23:09:42 martin Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -515,8 +515,12 @@ kvm_dump_mkheader(kvm_t *kd, off_t dump_
 	 * Validate new format crash dump
 	 */
 	sz = Pread(kd, kd-pmfd, cpu_hdr, sizeof(cpu_hdr), dump_off);
-	if (sz != sizeof(cpu_hdr))
+	if (sz != sizeof(cpu_hdr)) {
+		_kvm_err(kd, 0, read %zx bytes at offset %PRIx64
+		 for cpu_hdr instead of requested %zu,
+		sz, dump_off, sizeof(cpu_hdr));
 		return (-1);
+	}
 	if ((CORE_GETMAGIC(cpu_hdr) != KCORE_MAGIC)
 		|| (CORE_GETMID(cpu_hdr) != MID_MACHINE)) {
 		_kvm_err(kd, 0, invalid magic in cpu_hdr);
@@ -529,27 +533,37 @@ kvm_dump_mkheader(kvm_t *kd, off_t dump_
 	 */
 	kd-cpu_dsize = cpu_hdr.c_size;
 	kd-cpu_data = _kvm_malloc(kd, kd-cpu_dsize);
-	if (kd-cpu_data == NULL)
+	if (kd-cpu_data == NULL) {
+		_kvm_err(kd, kd-program, no cpu_data);
 		goto fail;
+	}
 	sz = Pread(kd, kd-pmfd, kd-cpu_data, cpu_hdr.c_size,
 	dump_off + hdr_size);
-	if (sz != cpu_hdr.c_size)
+	if (sz != cpu_hdr.c_size) {
+		_kvm_err(kd, kd-program, size %zu != cpu_hdr.csize %PRIu32,
+		sz, cpu_hdr.c_size);
 		goto fail;
+	}
 	hdr_size += kd-cpu_dsize;
 
 	/*
 	 * Leave phys mem pointer at beginning of memory data
 	 */
 	kd-dump_off = dump_off + hdr_size;
-	if (Lseek(kd, kd-pmfd, kd-dump_off, SEEK_SET) == -1)
+	if (Lseek(kd, kd-pmfd, kd-dump_off, SEEK_SET) == -1) {
+		_kvm_err(kd, kd-program, failed to seek to % PRId64,
+		(int64_t)kd-dump_off);
 		goto fail;
+	}
 
 	/*
 	 * Create a kcore_hdr.
 	 */
 	kd-kcore_hdr = _kvm_malloc(kd, sizeof(kcore_hdr_t));
-	if (kd-kcore_hdr == NULL)
+	if (kd-kcore_hdr == NULL) {
+		_kvm_err(kd, kd-program, failed to allocate header);
 		goto fail;
+	}
 
 	kd-kcore_hdr-c_hdrsize= ALIGN(sizeof(kcore_hdr_t));
 	kd-kcore_hdr-c_seghdrsize = ALIGN(sizeof(kcore_seg_t));



CVS commit: src/lib/libkvm

2012-08-26 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Aug 26 23:09:42 UTC 2012

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Do not fail kvm_dump_mkheader without setting an error message


To generate a diff of this commit:
cvs rdiff -u -r1.99 -r1.100 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2012-01-10 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Tue Jan 10 16:01:16 UTC 2012

Modified Files:
src/lib/libkvm: kvm_x86_64.c

Log Message:
fix handling of large pages.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_x86_64.c
diff -u src/lib/libkvm/kvm_x86_64.c:1.8 src/lib/libkvm/kvm_x86_64.c:1.9
--- src/lib/libkvm/kvm_x86_64.c:1.8	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_x86_64.c	Tue Jan 10 16:01:16 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_x86_64.c,v 1.8 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_x86_64.c,v 1.9 2012/01/10 16:01:16 chs Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_hp300.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_x86_64.c,v 1.8 2010/09/20 23:23:16 jym Exp $);
+__RCSID($NetBSD: kvm_x86_64.c,v 1.9 2012/01/10 16:01:16 chs Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -105,7 +105,6 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 	}
 
 	cpu_kh = kd-cpu_data;
-	page_off = va  PGOFSET;
 
 	/*
 	 * Find and read all entries to get to the pa.
@@ -138,6 +137,11 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 		_kvm_err(kd, 0, invalid translation (invalid level 3 PDE));
 		goto lose;
 	}
+	if (pde  PG_PS) {
+		page_off = va  (NBPD_L3 - 1);
+		*pa = (pde  PG_1GFRAME) + page_off;
+		return (int)(NBPD_L3 - page_off);
+	}
 
 	/*
 	 * Level 2.
@@ -152,7 +156,11 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 		_kvm_err(kd, 0, invalid translation (invalid level 2 PDE));
 		goto lose;
 	}
-
+	if (pde  PG_PS) {
+		page_off = va  (NBPD_L2 - 1);
+		*pa = (pde  PG_2MFRAME) + page_off;
+		return (int)(NBPD_L2 - page_off);
+	}
 
 	/*
 	 * Level 1.
@@ -170,6 +178,7 @@ _kvm_kvatop(kvm_t *kd, vaddr_t va, paddr
 		_kvm_err(kd, 0, invalid translation (invalid PTE));
 		goto lose;
 	}
+	page_off = va  PGOFSET;
 	*pa = (pte  PG_FRAME) + page_off;
 	return (int)(NBPG - page_off);
 



CVS commit: src/lib/libkvm

2012-01-10 Thread Chuck Silvers
Module Name:src
Committed By:   chs
Date:   Tue Jan 10 16:01:16 UTC 2012

Modified Files:
src/lib/libkvm: kvm_x86_64.c

Log Message:
fix handling of large pages.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libkvm/kvm_x86_64.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-10-15 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Oct 15 21:08:53 UTC 2011

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
kill open_cloexec()


To generate a diff of this commit:
cvs rdiff -u -r1.98 -r1.99 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.98 src/lib/libkvm/kvm.c:1.99
--- src/lib/libkvm/kvm.c:1.98	Mon Sep 12 17:11:32 2011
+++ src/lib/libkvm/kvm.c	Sat Oct 15 17:08:53 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.98 2011/09/12 21:11:32 christos Exp $	*/
+/*	$NetBSD: kvm.c,v 1.99 2011/10/15 21:08:53 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm.c	8.2 (Berkeley) 2/13/94;
 #else
-__RCSID($NetBSD: kvm.c,v 1.98 2011/09/12 21:11:32 christos Exp $);
+__RCSID($NetBSD: kvm.c,v 1.99 2011/10/15 21:08:53 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -80,7 +80,6 @@ static kvm_t	*_kvm_open(kvm_t *, const c
 		const char *, int, char *);
 static int	clear_gap(kvm_t *, bool (*)(void *, const void *, size_t),
 		void *, size_t);
-static int	open_cloexec(const char *, int, int);
 static off_t	Lseek(kvm_t *, int, off_t, int);
 static ssize_t	Pread(kvm_t *, int, void *, size_t, off_t);
 
@@ -152,27 +151,6 @@ _kvm_malloc(kvm_t *kd, size_t n)
 }
 
 /*
- * Open a file setting the close on exec bit.
- */
-static int
-open_cloexec(const char *fname, int flags, int mode)
-{
-	int fd;
-
-	if ((fd = open(fname, flags, mode)) == -1)
-		return fd;
-	if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
-		goto error;
-
-	return fd;
-error:
-	flags = errno;
-	(void)close(fd);
-	errno = flags;
-	return -1;
-}
-
-/*
  * Wrapper around the lseek(2) system call; calls _kvm_syserr() for us
  * in the event of emergency.
  */
@@ -336,9 +314,9 @@ _kvm_open(kvm_t *kd, const char *uf, con
 	 * exist, open the current kernel.
 	 */
 	if (ufgiven == 0)
-		kd-nlfd = open_cloexec(_PATH_KSYMS, O_RDONLY, 0);
+		kd-nlfd = open(_PATH_KSYMS, O_RDONLY | O_CLOEXEC, 0);
 	if (kd-nlfd  0) {
-		if ((kd-nlfd = open_cloexec(uf, O_RDONLY, 0))  0) {
+		if ((kd-nlfd = open(uf, O_RDONLY | O_CLOEXEC, 0))  0) {
 			_kvm_syserr(kd, kd-program, %s, uf);
 			goto failed;
 		}
@@ -356,7 +334,7 @@ _kvm_open(kvm_t *kd, const char *uf, con
 		kd-nlfd = -1;
 	}
 
-	if ((kd-pmfd = open_cloexec(mf, flag, 0))  0) {
+	if ((kd-pmfd = open(mf, flag | O_CLOEXEC, 0))  0) {
 		_kvm_syserr(kd, kd-program, %s, mf);
 		goto failed;
 	}
@@ -370,12 +348,12 @@ _kvm_open(kvm_t *kd, const char *uf, con
 		 * make it work for either /dev/mem or /dev/kmem -- in either
 		 * case you're working with a live kernel.)
 		 */
-		if ((kd-vmfd = open_cloexec(_PATH_KMEM, flag, 0))  0) {
+		if ((kd-vmfd = open(_PATH_KMEM, flag | O_CLOEXEC, 0))  0) {
 			_kvm_syserr(kd, kd-program, %s, _PATH_KMEM);
 			goto failed;
 		}
 		kd-alive = KVM_ALIVE_FILES;
-		if ((kd-swfd = open_cloexec(sf, flag, 0))  0) {
+		if ((kd-swfd = open(sf, flag | O_CLOEXEC, 0))  0) {
 			if (errno != ENXIO) {
 _kvm_syserr(kd, kd-program, %s, sf);
 goto failed;
@@ -781,7 +759,7 @@ kvm_nlist(kvm_t *kd, struct nlist *nl)
 	 * So open it again, just for the time we retrieve the list.
 	 */
 	if (kd-nlfd  0) {
-		nlfd = open_cloexec(_PATH_KSYMS, O_RDONLY, 0);
+		nlfd = open(_PATH_KSYMS, O_RDONLY | O_CLOEXEC, 0);
 		if (nlfd  0) {
 			_kvm_err(kd, 0, failed to open %s, _PATH_KSYMS);
 			return (nlfd);



CVS commit: src/lib/libkvm

2011-10-15 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Oct 15 21:08:53 UTC 2011

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
kill open_cloexec()


To generate a diff of this commit:
cvs rdiff -u -r1.98 -r1.99 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-09-14 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Sep 14 12:37:56 UTC 2011

Modified Files:
src/lib/libkvm: kvm_sun2.c kvm_sun3.c kvm_sun3x.c

Log Message:
more sys/param.h additions


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libkvm/kvm_sun2.c
cvs rdiff -u -r1.14 -r1.15 src/lib/libkvm/kvm_sun3.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm_sun3x.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_sun2.c
diff -u src/lib/libkvm/kvm_sun2.c:1.5 src/lib/libkvm/kvm_sun2.c:1.6
--- src/lib/libkvm/kvm_sun2.c:1.5	Mon Sep 20 19:23:16 2010
+++ src/lib/libkvm/kvm_sun2.c	Wed Sep 14 08:37:55 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_sun2.c,v 1.5 2010/09/20 23:23:16 jym Exp $ */
+/*	$NetBSD: kvm_sun2.c,v 1.6 2011/09/14 12:37:55 christos Exp $ */
 
 /*-
  * Copyright (c) 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_sparc.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_sun2.c,v 1.5 2010/09/20 23:23:16 jym Exp $);
+__RCSID($NetBSD: kvm_sun2.c,v 1.6 2011/09/14 12:37:55 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -48,7 +48,7 @@
  * Note: This file has to build on ALL m68000 machines,
  * so do NOT include any machine / *.h files here.
  */
-
+#include sys/param.h
 #include sys/types.h
 #include sys/kcore.h
 

Index: src/lib/libkvm/kvm_sun3.c
diff -u src/lib/libkvm/kvm_sun3.c:1.14 src/lib/libkvm/kvm_sun3.c:1.15
--- src/lib/libkvm/kvm_sun3.c:1.14	Mon Sep 20 19:23:16 2010
+++ src/lib/libkvm/kvm_sun3.c	Wed Sep 14 08:37:55 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_sun3.c,v 1.14 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_sun3.c,v 1.15 2011/09/14 12:37:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_sparc.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_sun3.c,v 1.14 2010/09/20 23:23:16 jym Exp $);
+__RCSID($NetBSD: kvm_sun3.c,v 1.15 2011/09/14 12:37:55 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -48,7 +48,7 @@
  * Note: This file has to build on ALL m68k machines,
  * so do NOT include any machine / *.h files here.
  */
-
+#include sys/param.h
 #include sys/types.h
 #include sys/kcore.h
 

Index: src/lib/libkvm/kvm_sun3x.c
diff -u src/lib/libkvm/kvm_sun3x.c:1.11 src/lib/libkvm/kvm_sun3x.c:1.12
--- src/lib/libkvm/kvm_sun3x.c:1.11	Mon Sep 20 19:23:16 2010
+++ src/lib/libkvm/kvm_sun3x.c	Wed Sep 14 08:37:55 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_sun3x.c,v 1.11 2010/09/20 23:23:16 jym Exp $	*/
+/*	$NetBSD: kvm_sun3x.c,v 1.12 2011/09/14 12:37:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_sparc.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_sun3x.c,v 1.11 2010/09/20 23:23:16 jym Exp $);
+__RCSID($NetBSD: kvm_sun3x.c,v 1.12 2011/09/14 12:37:55 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -44,7 +44,7 @@
  * Note: This file has to build on ALL m68k machines,
  * so do NOT include any machine / *.h files here.
  */
-
+#include sys/param.h
 #include sys/types.h
 #include sys/kcore.h
 



CVS commit: src/lib/libkvm

2011-09-14 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Sep 14 12:37:56 UTC 2011

Modified Files:
src/lib/libkvm: kvm_sun2.c kvm_sun3.c kvm_sun3x.c

Log Message:
more sys/param.h additions


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libkvm/kvm_sun2.c
cvs rdiff -u -r1.14 -r1.15 src/lib/libkvm/kvm_sun3.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm_sun3x.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-09-13 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Tue Sep 13 08:53:10 UTC 2011

Modified Files:
src/lib/libkvm: kvm_getkernelname.3

Log Message:
Fix Xr.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libkvm/kvm_getkernelname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_getkernelname.3
diff -u src/lib/libkvm/kvm_getkernelname.3:1.1 src/lib/libkvm/kvm_getkernelname.3:1.2
--- src/lib/libkvm/kvm_getkernelname.3:1.1	Mon Sep 12 21:11:53 2011
+++ src/lib/libkvm/kvm_getkernelname.3	Tue Sep 13 08:53:10 2011
@@ -1,4 +1,4 @@
-.\	$NetBSD: kvm_getkernelname.3,v 1.1 2011/09/12 21:11:53 christos Exp $
+.\	$NetBSD: kvm_getkernelname.3,v 1.2 2011/09/13 08:53:10 wiz Exp $
 .\
 .\
 .\ Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -50,9 +50,9 @@
 .Sh DESCRIPTION
 This function returns a string containing the kernel name used from the kvm
 descriptor obtained by a previous
-.Xr kvm_open
+.Xr kvm_open 3
 or
-.Xr kvm_openfiles
+.Xr kvm_openfiles 3
 call.
 .Sh SEE ALSO
 .Xr kvm 3 ,



CVS commit: src/lib/libkvm

2011-09-13 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Tue Sep 13 08:53:15 UTC 2011

Modified Files:
src/lib/libkvm: kvm.3

Log Message:
Sort sections.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.3
diff -u src/lib/libkvm/kvm.3:1.12 src/lib/libkvm/kvm.3:1.13
--- src/lib/libkvm/kvm.3:1.12	Mon Sep 12 21:11:32 2011
+++ src/lib/libkvm/kvm.3	Tue Sep 13 08:53:15 2011
@@ -1,4 +1,4 @@
-.\	$NetBSD: kvm.3,v 1.12 2011/09/12 21:11:32 christos Exp $
+.\	$NetBSD: kvm.3,v 1.13 2011/09/13 08:53:15 wiz Exp $
 .\
 .\ Copyright (c) 1992, 1993
 .\	The Regents of the University of California.  All rights reserved.
@@ -57,6 +57,11 @@
 .Pp
 .Fn kvm_open
 is first called to obtain a descriptor for all subsequent calls.
+.Sh FILES
+.Bl -tag -width /dev/mem -compact
+.It Pa /dev/mem
+interface to physical memory
+.El
 .Sh COMPATIBILITY
 The kvm interface was first introduced in SunOS.
 A considerable number of programs have been developed that use this
@@ -89,11 +94,6 @@
 .Xr kvm_geterr 3 ,
 to return (not print out) the error message corresponding to the most
 recent error condition on the given descriptor.
-.Sh FILES
-.Bl -tag -width /dev/mem -compact
-.It Pa /dev/mem
-interface to physical memory
-.El
 .Sh SEE ALSO
 .Xr kvm_close 3 ,
 .Xr kvm_getargv 3 ,



CVS commit: src/lib/libkvm

2011-09-13 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Sep 13 19:11:09 UTC 2011

Modified Files:
src/lib/libkvm: kvm_m68k_cmn.c

Log Message:
Include sys/param.h for MAXPATHLEN


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libkvm/kvm_m68k_cmn.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_m68k_cmn.c
diff -u src/lib/libkvm/kvm_m68k_cmn.c:1.16 src/lib/libkvm/kvm_m68k_cmn.c:1.17
--- src/lib/libkvm/kvm_m68k_cmn.c:1.16	Sun Sep 26 18:28:05 2010
+++ src/lib/libkvm/kvm_m68k_cmn.c	Tue Sep 13 15:11:09 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_m68k_cmn.c,v 1.16 2010/09/26 22:28:05 jym Exp $	*/
+/*	$NetBSD: kvm_m68k_cmn.c,v 1.17 2011/09/13 19:11:09 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -74,7 +74,7 @@
 #if 0
 static char sccsid[] = @(#)kvm_hp300.c	8.1 (Berkeley) 6/4/93;
 #else
-__RCSID($NetBSD: kvm_m68k_cmn.c,v 1.16 2010/09/26 22:28:05 jym Exp $);
+__RCSID($NetBSD: kvm_m68k_cmn.c,v 1.17 2011/09/13 19:11:09 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -85,6 +85,7 @@
  * so do NOT include any machine / *.h files here.
  */
 
+#include sys/param.h
 #include sys/types.h
 #include sys/kcore.h
 



CVS commit: src/lib/libkvm

2011-09-13 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Tue Sep 13 08:53:10 UTC 2011

Modified Files:
src/lib/libkvm: kvm_getkernelname.3

Log Message:
Fix Xr.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libkvm/kvm_getkernelname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-09-13 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Tue Sep 13 08:53:15 UTC 2011

Modified Files:
src/lib/libkvm: kvm.3

Log Message:
Sort sections.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libkvm/kvm.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-09-13 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Sep 13 19:11:09 UTC 2011

Modified Files:
src/lib/libkvm: kvm_m68k_cmn.c

Log Message:
Include sys/param.h for MAXPATHLEN


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libkvm/kvm_m68k_cmn.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-09-12 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Sep 12 21:11:32 UTC 2011

Modified Files:
src/lib/libkvm: Makefile kvm.3 kvm.c kvm_open.3 kvm_private.h

Log Message:
add a function to report the name of the file kvm_open{,.files} is using.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/lib/libkvm/Makefile
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm.3
cvs rdiff -u -r1.97 -r1.98 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.17 -r1.18 src/lib/libkvm/kvm_open.3
cvs rdiff -u -r1.19 -r1.20 src/lib/libkvm/kvm_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/Makefile
diff -u src/lib/libkvm/Makefile:1.47 src/lib/libkvm/Makefile:1.48
--- src/lib/libkvm/Makefile:1.47	Mon Feb 14 13:27:24 2011
+++ src/lib/libkvm/Makefile	Mon Sep 12 17:11:31 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.47 2011/02/14 18:27:24 matt Exp $
+#	$NetBSD: Makefile,v 1.48 2011/09/12 21:11:31 christos Exp $
 #	from: @(#)Makefile	8.1 (Berkeley) 6/4/93
 
 USE_FORT?= yes	# used primarily by setgid programs
@@ -39,6 +39,7 @@
 .endif
 
 MAN=	kvm.3 kvm_dump.3 kvm_geterr.3 kvm_getfiles.3 kvm_getloadavg.3 \
+	kvm_getkernelname.3 \
 	kvm_getprocs.3 kvm_nlist.3 kvm_open.3 kvm_read.3 kvm_getlwps.3
 
 MLINKS+=kvm_getprocs.3 kvm_getargv.3 kvm_getprocs.3 kvm_getenvv.3

Index: src/lib/libkvm/kvm.3
diff -u src/lib/libkvm/kvm.3:1.11 src/lib/libkvm/kvm.3:1.12
--- src/lib/libkvm/kvm.3:1.11	Thu Aug  7 12:44:35 2003
+++ src/lib/libkvm/kvm.3	Mon Sep 12 17:11:32 2011
@@ -1,4 +1,4 @@
-.\	$NetBSD: kvm.3,v 1.11 2003/08/07 16:44:35 agc Exp $
+.\	$NetBSD: kvm.3,v 1.12 2011/09/12 21:11:32 christos Exp $
 .\
 .\ Copyright (c) 1992, 1993
 .\	The Regents of the University of California.  All rights reserved.
@@ -33,7 +33,7 @@
 .\
 .\ @(#)kvm.3	8.1 (Berkeley) 6/4/93
 .\
-.Dd August 18, 2002
+.Dd September 14, 2011
 .Dt KVM 3
 .Os
 .Sh NAME
@@ -99,6 +99,7 @@
 .Xr kvm_getargv 3 ,
 .Xr kvm_getenvv 3 ,
 .Xr kvm_geterr 3 ,
+.Xr kvm_getkernelname 3 ,
 .Xr kvm_getloadavg 3 ,
 .Xr kvm_getlwps 3 ,
 .Xr kvm_getprocs 3 ,

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.97 src/lib/libkvm/kvm.c:1.98
--- src/lib/libkvm/kvm.c:1.97	Fri Nov 26 17:01:53 2010
+++ src/lib/libkvm/kvm.c	Mon Sep 12 17:11:32 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.97 2010/11/26 22:01:53 dholland Exp $	*/
+/*	$NetBSD: kvm.c,v 1.98 2011/09/12 21:11:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm.c	8.2 (Berkeley) 2/13/94;
 #else
-__RCSID($NetBSD: kvm.c,v 1.97 2010/11/26 22:01:53 dholland Exp $);
+__RCSID($NetBSD: kvm.c,v 1.98 2011/09/12 21:11:32 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -90,6 +90,12 @@
 	return (kd-errbuf);
 }
 
+const char *
+kvm_getkernelname(kvm_t *kd)
+{
+	return kd-kernelname;
+}
+
 /*
  * Report an error using printf style arguments.  program is kd-program
  * on hard errors, and 0 on soft errors, so that under sun error emulation,
@@ -336,7 +342,9 @@
 			_kvm_syserr(kd, kd-program, %s, uf);
 			goto failed;
 		}
+		strlcpy(kd-kernelname, uf, sizeof(kd-kernelname));
 	} else {
+		strlcpy(kd-kernelname, _PATH_KSYMS, sizeof(kd-kernelname));
 		/*
 		 * We're here because /dev/ksyms was opened
 		 * successfully.  However, we don't want to keep it

Index: src/lib/libkvm/kvm_open.3
diff -u src/lib/libkvm/kvm_open.3:1.17 src/lib/libkvm/kvm_open.3:1.18
--- src/lib/libkvm/kvm_open.3:1.17	Mon Mar 22 17:55:06 2010
+++ src/lib/libkvm/kvm_open.3	Mon Sep 12 17:11:32 2011
@@ -1,4 +1,4 @@
-.\	$NetBSD: kvm_open.3,v 1.17 2010/03/22 21:55:06 joerg Exp $
+.\	$NetBSD: kvm_open.3,v 1.18 2011/09/12 21:11:32 christos Exp $
 .\
 .\ Copyright (c) 1992, 1993
 .\	The Regents of the University of California.  All rights reserved.
@@ -33,7 +33,7 @@
 .\
 .\ @(#)kvm_open.3	8.3 (Berkeley) 4/19/94
 .\
-.Dd September 14, 2009
+.Dd September 14, 2011
 .Dt KVM_OPEN 3
 .Os
 .Sh NAME
@@ -224,6 +224,7 @@
 .Xr kvm_getargv 3 ,
 .Xr kvm_getenvv 3 ,
 .Xr kvm_geterr 3 ,
+.Xr kvm_getkernelname 3 ,
 .Xr kvm_getprocs 3 ,
 .Xr kvm_nlist 3 ,
 .Xr kvm_read 3 ,

Index: src/lib/libkvm/kvm_private.h
diff -u src/lib/libkvm/kvm_private.h:1.19 src/lib/libkvm/kvm_private.h:1.20
--- src/lib/libkvm/kvm_private.h:1.19	Sun Sep 26 18:28:05 2010
+++ src/lib/libkvm/kvm_private.h	Mon Sep 12 17:11:32 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm_private.h,v 1.19 2010/09/26 22:28:05 jym Exp $	*/
+/*	$NetBSD: kvm_private.h,v 1.20 2011/09/12 21:11:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -90,6 +90,7 @@
 	size_t fdalign;
 	uint8_t *iobuf;
 	size_t iobufsz;
+	char kernelname[MAXPATHLEN];
 };
 
 /* Levels of aliveness */



CVS commit: src/lib/libkvm

2011-09-12 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Sep 12 21:11:54 UTC 2011

Added Files:
src/lib/libkvm: kvm_getkernelname.3

Log Message:
doc for kvm_getkernelname


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libkvm/kvm_getkernelname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/lib/libkvm/kvm_getkernelname.3
diff -u /dev/null src/lib/libkvm/kvm_getkernelname.3:1.1
--- /dev/null	Mon Sep 12 17:11:54 2011
+++ src/lib/libkvm/kvm_getkernelname.3	Mon Sep 12 17:11:53 2011
@@ -0,0 +1,67 @@
+.\	$NetBSD: kvm_getkernelname.3,v 1.1 2011/09/12 21:11:53 christos Exp $
+.\
+.\
+.\ Copyright (c) 2011 The NetBSD Foundation, Inc.
+.\ All rights reserved.
+.\
+.\ This code is derived from software contributed to The NetBSD Foundation
+.\ by Christos Zoulas.
+.\
+.\ Redistribution and use in source and binary forms, with or without
+.\ modification, are permitted provided that the following conditions
+.\ are met:
+.\ 1. Redistributions of source code must retain the above copyright
+.\notice, this list of conditions and the following disclaimer.
+.\ 2. Redistributions in binary form must reproduce the above copyright
+.\notice, this list of conditions and the following disclaimer in the
+.\documentation and/or other materials provided with the distribution.
+.\ 3. All advertising materials mentioning features or use of this software
+.\must display the following acknowledgement:
+.\This product includes software developed by the NetBSD
+.\Foundation, Inc. and its contributors.
+.\ 4. Neither the name of The NetBSD Foundation nor the names of its
+.\contributors may be used to endorse or promote products derived
+.\from this software without specific prior written permission.
+.\
+.\ THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\ PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\ POSSIBILITY OF SUCH DAMAGE.
+.\
+.Dd September 14, 2011
+.Dt KVM_GETKERNELNAME 3
+.Os
+.Sh NAME
+.Nm kvm_getkernelname
+.Nd get kernel name of opened kvm descriptor
+.Sh LIBRARY
+.Lb libkvm
+.Sh SYNOPSIS
+.In kvm.h
+.Ft const char *
+.Fn kvm_getkernelname kvm_t *kd
+.Sh DESCRIPTION
+This function returns a string containing the kernel name used from the kvm
+descriptor obtained by a previous
+.Xr kvm_open
+or
+.Xr kvm_openfiles
+call.
+.Sh SEE ALSO
+.Xr kvm 3 ,
+.Xr kvm_close 3 ,
+.Xr kvm_getargv 3 ,
+.Xr kvm_getenvv 3 ,
+.Xr kvm_getprocs 3 ,
+.Xr kvm_nlist 3 ,
+.Xr kvm_open 3 ,
+.Xr kvm_openfiles 3 ,
+.Xr kvm_read 3 ,
+.Xr kvm_write 3



CVS commit: src/lib/libkvm

2011-09-12 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Sep 12 21:11:32 UTC 2011

Modified Files:
src/lib/libkvm: Makefile kvm.3 kvm.c kvm_open.3 kvm_private.h

Log Message:
add a function to report the name of the file kvm_open{,.files} is using.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/lib/libkvm/Makefile
cvs rdiff -u -r1.11 -r1.12 src/lib/libkvm/kvm.3
cvs rdiff -u -r1.97 -r1.98 src/lib/libkvm/kvm.c
cvs rdiff -u -r1.17 -r1.18 src/lib/libkvm/kvm_open.3
cvs rdiff -u -r1.19 -r1.20 src/lib/libkvm/kvm_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-09-12 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Sep 12 21:11:54 UTC 2011

Added Files:
src/lib/libkvm: kvm_getkernelname.3

Log Message:
doc for kvm_getkernelname


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libkvm/kvm_getkernelname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-02-14 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Feb 14 18:27:24 UTC 2011

Modified Files:
src/lib/libkvm: Makefile

Log Message:
Add -D_KMEMUSER to CPPFLAGS


To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/lib/libkvm/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/Makefile
diff -u src/lib/libkvm/Makefile:1.46 src/lib/libkvm/Makefile:1.47
--- src/lib/libkvm/Makefile:1.46	Tue Oct  5 23:48:16 2010
+++ src/lib/libkvm/Makefile	Mon Feb 14 18:27:24 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.46 2010/10/05 23:48:16 jym Exp $
+#	$NetBSD: Makefile,v 1.47 2011/02/14 18:27:24 matt Exp $
 #	from: @(#)Makefile	8.1 (Berkeley) 6/4/93
 
 USE_FORT?= yes	# used primarily by setgid programs
@@ -6,7 +6,7 @@
 USE_SHLIBDIR=	yes
 
 LIB=	kvm
-CPPFLAGS+=-DLIBC_SCCS -I${NETBSDSRCDIR}/sys
+CPPFLAGS+=-DLIBC_SCCS -I${NETBSDSRCDIR}/sys -D_KMEMUSER
 
 SRCS=	kvm.c kvm_file.c kvm_getloadavg.c kvm_proc.c
 



CVS commit: src/lib/libkvm

2011-02-14 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Feb 14 18:27:24 UTC 2011

Modified Files:
src/lib/libkvm: Makefile

Log Message:
Add -D_KMEMUSER to CPPFLAGS


To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/lib/libkvm/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/lib/libkvm

2011-01-22 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sun Jan 23 06:28:53 UTC 2011

Modified Files:
src/lib/libkvm: kvm_mips.c

Log Message:
Teach libkvm how kernel virtual memory is laided on 64-bit MIPS kernels.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/lib/libkvm/kvm_mips.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm_mips.c
diff -u src/lib/libkvm/kvm_mips.c:1.20 src/lib/libkvm/kvm_mips.c:1.21
--- src/lib/libkvm/kvm_mips.c:1.20	Mon Sep 20 23:23:16 2010
+++ src/lib/libkvm/kvm_mips.c	Sun Jan 23 06:28:52 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: kvm_mips.c,v 1.20 2010/09/20 23:23:16 jym Exp $ */
+/* $NetBSD: kvm_mips.c,v 1.21 2011/01/23 06:28:52 matt Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -34,7 +34,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: kvm_mips.c,v 1.20 2010/09/20 23:23:16 jym Exp $);
+__RCSID($NetBSD: kvm_mips.c,v 1.21 2011/01/23 06:28:52 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 /*
@@ -100,6 +100,23 @@
 	cpu_kh = kd-cpu_data;
 	page_off = va  PGOFSET;
 
+#ifdef _LP64
+	if (MIPS_XKPHYS_P(va)) {
+		/*
+		 * Direct-mapped cached address: just convert it.
+		 */
+		*pa = MIPS_XKPHYS_TO_PHYS(va);
+		return (NBPG - page_off);
+	}
+
+	if (va  MIPS_XKPHYS_START) {
+		/*
+		 * XUSEG (user virtual address space) - invalid.
+		 */
+		_kvm_err(kd, 0, invalid kernel virtual address);
+		goto lose;
+	}
+#else
 	if (va  MIPS_KSEG0_START) {
 		/*
 		 * KUSEG (user virtual address space) - invalid.
@@ -107,8 +124,9 @@
 		_kvm_err(kd, 0, invalid kernel virtual address);
 		goto lose;
 	}
+#endif
 
-	if (va = MIPS_KSEG0_START  va  MIPS_KSEG1_START) {
+	if (MIPS_KSEG0_P(va)) {
 		/*
 		 * Direct-mapped cached address: just convert it.
 		 */
@@ -116,7 +134,7 @@
 		return (NBPG - page_off);
 	}
 
-	if (va = MIPS_KSEG1_START  va  MIPS_KSEG2_START) {
+	if (MIPS_KSEG1_P(va)) {
 		/*
 		 * Direct-mapped uncached address: just convert it.
 		 */
@@ -124,6 +142,16 @@
 		return (NBPG - page_off);
 	}
 
+#ifdef _LP64
+	if (va = MIPS_KSEG2_START) {
+		/*
+		 * KUSEG (user virtual address space) - invalid.
+		 */
+		_kvm_err(kd, 0, invalid kernel virtual address);
+		goto lose;
+	}
+#endif
+
 	/*
 	 * We now know that we're a KSEG2 (kernel virtually mapped)
 	 * address.  Translate the address using the pmap's kernel
@@ -134,10 +162,17 @@
 	 * Step 1: Make sure the kernel page table has a translation
 	 * for the address.
 	 */
+#ifdef _LP64
+	if (va = (MIPS_XKSEG_START + (cpu_kh-sysmapsize * NBPG))) {
+		_kvm_err(kd, 0, invalid XKSEG address);
+		goto lose;
+	}
+#else
 	if (va = (MIPS_KSEG2_START + (cpu_kh-sysmapsize * NBPG))) {
 		_kvm_err(kd, 0, invalid KSEG2 address);
 		goto lose;
 	}
+#endif
 
 	/*
 	 * Step 2: Locate and read the PTE.



CVS commit: src/lib/libkvm

2010-11-26 Thread David A. Holland
Module Name:src
Committed By:   dholland
Date:   Fri Nov 26 22:01:53 UTC 2010

Modified Files:
src/lib/libkvm: kvm.c

Log Message:
Return error on failure instead of hiding it and always returning zero.
From Henning Petersen in PR 44152.


To generate a diff of this commit:
cvs rdiff -u -r1.96 -r1.97 src/lib/libkvm/kvm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libkvm/kvm.c
diff -u src/lib/libkvm/kvm.c:1.96 src/lib/libkvm/kvm.c:1.97
--- src/lib/libkvm/kvm.c:1.96	Sat Oct 23 14:34:12 2010
+++ src/lib/libkvm/kvm.c	Fri Nov 26 22:01:53 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: kvm.c,v 1.96 2010/10/23 14:34:12 stacktic Exp $	*/
+/*	$NetBSD: kvm.c,v 1.97 2010/11/26 22:01:53 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1989, 1992, 1993
@@ -38,7 +38,7 @@
 #if 0
 static char sccsid[] = @(#)kvm.c	8.2 (Berkeley) 2/13/94;
 #else
-__RCSID($NetBSD: kvm.c,v 1.96 2010/10/23 14:34:12 stacktic Exp $);
+__RCSID($NetBSD: kvm.c,v 1.97 2010/11/26 22:01:53 dholland Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -759,7 +759,7 @@
 		free(kd-iobuf);
 	free(kd);
 
-	return (0);
+	return (error);
 }
 
 int



  1   2   >