xref: /minix3/lib/libkvm/kvm.3 (revision 9da227510d14c35cccbd92c6a9e316b4079c4911)
1*9da22751SDavid van Moolenbroek.\"	$NetBSD: kvm.3,v 1.13 2011/09/13 08:53:15 wiz Exp $
2*9da22751SDavid van Moolenbroek.\"
3*9da22751SDavid van Moolenbroek.\" Copyright (c) 1992, 1993
4*9da22751SDavid van Moolenbroek.\"	The Regents of the University of California.  All rights reserved.
5*9da22751SDavid van Moolenbroek.\"
6*9da22751SDavid van Moolenbroek.\" This code is derived from software developed by the Computer Systems
7*9da22751SDavid van Moolenbroek.\" Engineering group at Lawrence Berkeley Laboratory under DARPA contract
8*9da22751SDavid van Moolenbroek.\" BG 91-66 and contributed to Berkeley.
9*9da22751SDavid van Moolenbroek.\"
10*9da22751SDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without
11*9da22751SDavid van Moolenbroek.\" modification, are permitted provided that the following conditions
12*9da22751SDavid van Moolenbroek.\" are met:
13*9da22751SDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright
14*9da22751SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer.
15*9da22751SDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright
16*9da22751SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer in the
17*9da22751SDavid van Moolenbroek.\"    documentation and/or other materials provided with the distribution.
18*9da22751SDavid van Moolenbroek.\" 3. Neither the name of the University nor the names of its contributors
19*9da22751SDavid van Moolenbroek.\"    may be used to endorse or promote products derived from this software
20*9da22751SDavid van Moolenbroek.\"    without specific prior written permission.
21*9da22751SDavid van Moolenbroek.\"
22*9da22751SDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23*9da22751SDavid van Moolenbroek.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24*9da22751SDavid van Moolenbroek.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25*9da22751SDavid van Moolenbroek.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26*9da22751SDavid van Moolenbroek.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27*9da22751SDavid van Moolenbroek.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28*9da22751SDavid van Moolenbroek.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29*9da22751SDavid van Moolenbroek.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30*9da22751SDavid van Moolenbroek.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31*9da22751SDavid van Moolenbroek.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32*9da22751SDavid van Moolenbroek.\" SUCH DAMAGE.
33*9da22751SDavid van Moolenbroek.\"
34*9da22751SDavid van Moolenbroek.\"     @(#)kvm.3	8.1 (Berkeley) 6/4/93
35*9da22751SDavid van Moolenbroek.\"
36*9da22751SDavid van Moolenbroek.Dd September 14, 2011
37*9da22751SDavid van Moolenbroek.Dt KVM 3
38*9da22751SDavid van Moolenbroek.Os
39*9da22751SDavid van Moolenbroek.Sh NAME
40*9da22751SDavid van Moolenbroek.Nm kvm
41*9da22751SDavid van Moolenbroek.Nd kernel memory interface
42*9da22751SDavid van Moolenbroek.Sh LIBRARY
43*9da22751SDavid van Moolenbroek.Lb libkvm
44*9da22751SDavid van Moolenbroek.Sh DESCRIPTION
45*9da22751SDavid van MoolenbroekThe
46*9da22751SDavid van Moolenbroek.Nm
47*9da22751SDavid van Moolenbroeklibrary provides a uniform interface for accessing kernel virtual memory
48*9da22751SDavid van Moolenbroekimages, including live systems and crash dumps.
49*9da22751SDavid van MoolenbroekAccess to live systems is via
50*9da22751SDavid van Moolenbroek.Pa /dev/mem
51*9da22751SDavid van Moolenbroekwhile crash dumps can be examined via the core file generated by
52*9da22751SDavid van Moolenbroek.Xr savecore 8 .
53*9da22751SDavid van MoolenbroekThe interface behaves identically in both cases.
54*9da22751SDavid van MoolenbroekMemory can be read and written, kernel symbol addresses can be
55*9da22751SDavid van Moolenbroeklooked up efficiently, and information about user processes can
56*9da22751SDavid van Moolenbroekbe gathered.
57*9da22751SDavid van Moolenbroek.Pp
58*9da22751SDavid van Moolenbroek.Fn kvm_open
59*9da22751SDavid van Moolenbroekis first called to obtain a descriptor for all subsequent calls.
60*9da22751SDavid van Moolenbroek.Sh FILES
61*9da22751SDavid van Moolenbroek.Bl -tag -width /dev/mem -compact
62*9da22751SDavid van Moolenbroek.It Pa /dev/mem
63*9da22751SDavid van Moolenbroekinterface to physical memory
64*9da22751SDavid van Moolenbroek.El
65*9da22751SDavid van Moolenbroek.Sh COMPATIBILITY
66*9da22751SDavid van MoolenbroekThe kvm interface was first introduced in SunOS.
67*9da22751SDavid van MoolenbroekA considerable number of programs have been developed that use this
68*9da22751SDavid van Moolenbroekinterface, making backward compatibility highly desirable.
69*9da22751SDavid van MoolenbroekIn most respects, the Sun kvm interface is consistent and clean.
70*9da22751SDavid van MoolenbroekAccordingly, the generic portion of the interface (i.e.,
71*9da22751SDavid van Moolenbroek.Fn kvm_open ,
72*9da22751SDavid van Moolenbroek.Fn kvm_close ,
73*9da22751SDavid van Moolenbroek.Fn kvm_read ,
74*9da22751SDavid van Moolenbroek.Fn kvm_write ,
75*9da22751SDavid van Moolenbroekand
76*9da22751SDavid van Moolenbroek.Fn kvm_nlist )
77*9da22751SDavid van Moolenbroekhas been incorporated into the
78*9da22751SDavid van Moolenbroek.Bx
79*9da22751SDavid van Moolenbroekinterface.
80*9da22751SDavid van MoolenbroekIndeed, many kvm applications (i.e., debuggers and statistical monitors)
81*9da22751SDavid van Moolenbroekuse only this subset of the interface.
82*9da22751SDavid van Moolenbroek.Pp
83*9da22751SDavid van MoolenbroekThe process interface was not kept.
84*9da22751SDavid van MoolenbroekThis is not a portability issue since any code that manipulates
85*9da22751SDavid van Moolenbroekprocesses is inherently machine dependent.
86*9da22751SDavid van Moolenbroek.Pp
87*9da22751SDavid van MoolenbroekFinally, the Sun kvm error reporting semantics are poorly defined.
88*9da22751SDavid van MoolenbroekThe library can be configured either to print errors to stderr automatically,
89*9da22751SDavid van Moolenbroekor to print no error messages at all.
90*9da22751SDavid van MoolenbroekIn the latter case, the nature of the error cannot be determined.
91*9da22751SDavid van MoolenbroekTo overcome this, the
92*9da22751SDavid van Moolenbroek.Bx
93*9da22751SDavid van Moolenbroekinterface includes a routine,
94*9da22751SDavid van Moolenbroek.Xr kvm_geterr 3 ,
95*9da22751SDavid van Moolenbroekto return (not print out) the error message corresponding to the most
96*9da22751SDavid van Moolenbroekrecent error condition on the given descriptor.
97*9da22751SDavid van Moolenbroek.Sh SEE ALSO
98*9da22751SDavid van Moolenbroek.Xr kvm_close 3 ,
99*9da22751SDavid van Moolenbroek.Xr kvm_getargv 3 ,
100*9da22751SDavid van Moolenbroek.Xr kvm_getenvv 3 ,
101*9da22751SDavid van Moolenbroek.Xr kvm_geterr 3 ,
102*9da22751SDavid van Moolenbroek.Xr kvm_getkernelname 3 ,
103*9da22751SDavid van Moolenbroek.Xr kvm_getloadavg 3 ,
104*9da22751SDavid van Moolenbroek.Xr kvm_getlwps 3 ,
105*9da22751SDavid van Moolenbroek.Xr kvm_getprocs 3 ,
106*9da22751SDavid van Moolenbroek.Xr kvm_nlist 3 ,
107*9da22751SDavid van Moolenbroek.Xr kvm_open 3 ,
108*9da22751SDavid van Moolenbroek.Xr kvm_openfiles 3 ,
109*9da22751SDavid van Moolenbroek.Xr kvm_read 3 ,
110*9da22751SDavid van Moolenbroek.Xr kvm_write 3
111