Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/libkvm Document KVM_NO_FILES and kvm_get{proc, argv, envv}...
details: https://anonhg.NetBSD.org/src/rev/4cb9a4704e49
branches: trunk
changeset: 487837:4cb9a4704e49
user: simonb <simonb%NetBSD.org@localhost>
date: Tue Jun 13 15:48:56 2000 +0000
description:
Document KVM_NO_FILES and kvm_get{proc,argv,envv}2(). Better wording
kindly accepted!
XXX: Need to update distrib lists. Tomorrow...
diffstat:
lib/libkvm/Makefile | 4 ++-
lib/libkvm/kvm_getprocs.3 | 66 +++++++++++++++++++++++++++++++++++++++++++---
lib/libkvm/kvm_open.3 | 31 +++++++++++++++++++--
3 files changed, 91 insertions(+), 10 deletions(-)
diffs (177 lines):
diff -r d8d208c2b259 -r 4cb9a4704e49 lib/libkvm/Makefile
--- a/lib/libkvm/Makefile Tue Jun 13 15:39:07 2000 +0000
+++ b/lib/libkvm/Makefile Tue Jun 13 15:48:56 2000 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.31 2000/05/09 21:55:53 bjh21 Exp $
+# $NetBSD: Makefile,v 1.32 2000/06/13 15:48:56 simonb Exp $
# from: @(#)Makefile 8.1 (Berkeley) 6/4/93
LIB= kvm
@@ -28,6 +28,8 @@
kvm_getprocs.3 kvm_nlist.3 kvm_open.3 kvm_read.3
MLINKS+=kvm_getprocs.3 kvm_getargv.3 kvm_getprocs.3 kvm_getenvv.3
+MLINKS+=kvm_getprocs.3 kvm_getproc2.3
+MLINKS+=kvm_getprocs.3 kvm_getargv2.3 kvm_getprocs.3 kvm_getenvv2.3
MLINKS+=kvm_open.3 kvm_openfiles.3 kvm_open.3 kvm_close.3
MLINKS+=kvm_read.3 kvm_write.3
MLINKS+=kvm_dump.3 kvm_dump_mkheader.3 kvm_dump.3 kvm_dump_wrtheader.3
diff -r d8d208c2b259 -r 4cb9a4704e49 lib/libkvm/kvm_getprocs.3
--- a/lib/libkvm/kvm_getprocs.3 Tue Jun 13 15:39:07 2000 +0000
+++ b/lib/libkvm/kvm_getprocs.3 Tue Jun 13 15:48:56 2000 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: kvm_getprocs.3,v 1.6 2000/04/15 04:38:47 simonb Exp $
+.\" $NetBSD: kvm_getprocs.3,v 1.7 2000/06/13 15:48:57 simonb Exp $
.\"
.\" Copyright (c) 1992, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -58,6 +58,12 @@
.Fn kvm_getargv "kvm_t *kd" "const struct kinfo_proc *p" "int nchr"
.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"
+.Ft char **
+.Fn kvm_getargv2 "kvm_t *kd" "const struct kinfo_proc2 *p" "int nchr"
+.Ft char **
+.Fn kvm_getenvv2 "kvm_t *kd" "const struct kinfo_proc2 *p" "int nchr"
.Sh DESCRIPTION
.Fn kvm_getprocs
returns a (sub-)set of active processes in the kernel indicated by
@@ -81,10 +87,10 @@
processes with process group
.Fa arg
.It Sy KERN_PROC_SESSION
-processes with session
+processes with sessiod id
.Fa arg
.It Sy KERN_PROC_TTY
-processes with tty
+processes with tty device
.Fa arg
.It Sy KERN_PROC_UID
processes with effective user id
@@ -92,11 +98,19 @@
.It Sy KERN_PROC_RUID
processes with real user id
.Fa arg
+.It Sy KERN_PROC_GID
+processes with effective group id
+.Fa arg
+.It Sy KERN_PROC_RGID
+processes with real group id
+.Fa arg
.El
.Pp
The number of processes found is returned in the reference parameter
.Fa cnt .
-The processes are returned as a contiguous array of kinfo_proc structures.
+The processes are returned as a contiguous array of
+.Sy kinfo_proc
+structures.
This memory is locally allocated, and subsequent calls to
.Fn kvm_getprocs
and
@@ -158,11 +172,53 @@
.Fn kvm_getargv
but returns the vector of environment strings. This data is
also alterable by the process.
+.Pp
+.Fn kvm_getproc2
+is similar to
+.Fn kvm_getprocs
+but returns an array of
+.Sy kinfo_proc2
+structures. Additionally, only the first
+.Fa elemsize
+bytes of each array entry are returned.
+If the size of the
+.Sy kinfo_proc2
+structure increases in size in a future release of
+.Nx
+the kernel will only return the requested amount of data for
+each array entry and programs that use
+.Fn kvm_getproc2
+will continue to function without the need for recompilation.
+.Pp
+The
+.Fn kvm_getargv2
+and
+.Fn kvm_getenvv2
+are equivalents to the
+.Fn kvm_getargv
+and
+.Fn kvm_getenvv
+functions but use a
+.Sy kinfo_proc2
+structure to specify the process.
+.Pp
+If called against an active kernel, the
+.Fn kvm_getproc2 ,
+.Fn kvm_getargv2 ,
+and
+.Fn kvm_getenvv2
+functions will use the
+.Xr sysctl 3
+interface and do not require access to the kernel memory device
+file or swap device.
.Sh RETURN VALUES
.Fn kvm_getprocs ,
.Fn kvm_getargv ,
+.Fn kvm_getenvv ,
+.Fn kvm_getproc2 ,
+.Fn kvm_getargv2 ,
and
-.Fn kvm_getenvv ,
+.Fn kvm_getenvv2
all return
.Dv NULL
on failure.
diff -r d8d208c2b259 -r 4cb9a4704e49 lib/libkvm/kvm_open.3
--- a/lib/libkvm/kvm_open.3 Tue Jun 13 15:39:07 2000 +0000
+++ b/lib/libkvm/kvm_open.3 Tue Jun 13 15:48:56 2000 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: kvm_open.3,v 1.6 1999/07/02 15:28:50 simonb Exp $
+.\" $NetBSD: kvm_open.3,v 1.7 2000/06/13 15:48:57 simonb Exp $
.\"
.\" Copyright (c) 1992, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -107,12 +107,35 @@
argument indicates read/write access as in
.Xr open 2
and applies only to the core file.
-Only
+The only permitted flags from
+.Xr open 2
+are
.Dv O_RDONLY ,
.Dv O_WRONLY ,
and
-.Dv O_RDWR
-are permitted.
+.Dv O_RDWR .
+.Pp
+As a special case, a
+.Fa flags
+argument of
+.Dv KVM_NO_FILES
+will initialse the
+.Xr kvm 3
+library for use on active kernels only using
+.Xr sysctl 3
+for retrieving kernel data and ignores the
+.Fa execfile ,
+.Fa corefile
+and
+.Fa swapfile
+arguments. Only a small subset of the
+.Xr kvm 3
+library functions are available using this method. These
+are currently
+.Xr kvm_getproc2 3 ,
+.Xr kvm_getargv2 3
+and
+.Xr kvm_getenvv2 3 .
.Pp
There are two open routines which differ only with respect to
the error mechanism.
Home |
Main Index |
Thread Index |
Old Index