Skip to content

Commit b307c68

Browse files
committed
NetBSD src for "user", checkout.sh rev 1a20c504ffecdd86deb35e579adb634837d2178f
1 parent 1d9579d commit b307c68

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+9516
-0
lines changed

lib/libkvm/Makefile

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# $NetBSD: Makefile,v 1.50 2014/08/10 23:39:08 matt Exp $
2+
# from: @(#)Makefile 8.1 (Berkeley) 6/4/93
3+
4+
WARNS= 3
5+
6+
USE_FORT?= yes # used primarily by setgid programs
7+
8+
USE_SHLIBDIR= yes
9+
10+
LIB= kvm
11+
CPPFLAGS+=-DLIBC_SCCS -I${NETBSDSRCDIR}/sys -D_KMEMUSER
12+
13+
SRCS= kvm.c kvm_file.c kvm_getloadavg.c kvm_proc.c
14+
15+
# This library should compile to the same thing on all variants of
16+
# ${MACHINE} with the same ${MACHINE_ARCH} so shared /usr works.
17+
# If it is necessary to run different code based on ${MACHINE} then
18+
# the dispatch on ${MACHINE} should be done at run time (see m68k).
19+
20+
.include <bsd.own.mk>
21+
.if exists(kvm_${KVM_MACHINE_ARCH}.c)
22+
SRCS+= kvm_${KVM_MACHINE_ARCH}.c
23+
.elif exists(kvm_${KVM_MACHINE_CPU}.c)
24+
SRCS+= kvm_${KVM_MACHINE_CPU}.c
25+
.elif exists(kvm_${MACHINE_ARCH}.c)
26+
SRCS+= kvm_${MACHINE_ARCH}.c
27+
.elif exists(kvm_${MACHINE_CPU}.c)
28+
SRCS+= kvm_${MACHINE_CPU}.c
29+
.else
30+
.BEGIN:
31+
@echo no kvm_xx.c for ${MACHINE_ARCH} nor ${MACHINE_CPU}
32+
@false
33+
.endif
34+
35+
.if ${MACHINE_ARCH} == "i386"
36+
LINTFLAGS+=-w
37+
SRCS+= kvm_i386pae.c # Hook PAE support in the i386 build
38+
.endif
39+
40+
# Additional modules needed for m68k
41+
.if (${MACHINE_ARCH} == "m68k" || ${MACHINE_CPU} == "m68k")
42+
SRCS+= kvm_m68k_cmn.c kvm_sun2.c kvm_sun3.c kvm_sun3x.c
43+
.endif
44+
45+
MAN= kvm.3 kvm_dump.3 kvm_geterr.3 kvm_getfiles.3 kvm_getloadavg.3 \
46+
kvm_getkernelname.3 \
47+
kvm_getprocs.3 kvm_nlist.3 kvm_open.3 kvm_read.3 kvm_getlwps.3
48+
49+
MLINKS+=kvm_getprocs.3 kvm_getargv.3 kvm_getprocs.3 kvm_getenvv.3
50+
MLINKS+=kvm_getprocs.3 kvm_getproc2.3
51+
MLINKS+=kvm_getprocs.3 kvm_getargv2.3 kvm_getprocs.3 kvm_getenvv2.3
52+
MLINKS+=kvm_open.3 kvm_openfiles.3 kvm_open.3 kvm_close.3
53+
MLINKS+=kvm_read.3 kvm_write.3
54+
MLINKS+=kvm_dump.3 kvm_dump_mkheader.3 kvm_dump.3 kvm_dump_wrtheader.3
55+
MLINKS+=kvm_dump.3 kvm_dump_inval.3
56+
57+
# This fixes building with MACHINE==sparc64, MACHINE_ARCH==sparc
58+
# XXX: this is a hack, but until the sparc MD headers are separated
59+
# out from the sparc AD headers, it's the easiest solution.
60+
#
61+
.if (${MACHINE_ARCH} == "sparc") # {
62+
.if !make(obj) && !make(clean) && !make(cleandir)
63+
.BEGIN:
64+
@([ -h machine ] || \
65+
ln -fs ${NETBSDSRCDIR}/sys/arch/sparc/include machine)
66+
@([ -h sparc ] || ln -fs ${NETBSDSRCDIR}/sys/arch/sparc/include sparc)
67+
.NOPATH: machine sparc
68+
.endif
69+
CLEANFILES+= machine sparc
70+
CPPFLAGS+= -I.
71+
.endif # }
72+
73+
74+
.include <bsd.lib.mk>

lib/libkvm/kvm.3

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

0 commit comments

Comments
 (0)