xref: /minix3/lib/libkvm/kvm_getlwps.3 (revision 9da227510d14c35cccbd92c6a9e316b4079c4911)
1*9da22751SDavid van Moolenbroek.\"	$NetBSD: kvm_getlwps.3,v 1.6 2009/03/10 23:49:07 joerg Exp $
2*9da22751SDavid van Moolenbroek.\"
3*9da22751SDavid van Moolenbroek.\"Copyright (c) 2002 The NetBSD Foundation, Inc.
4*9da22751SDavid van Moolenbroek.\"All rights reserved.
5*9da22751SDavid van Moolenbroek.\"
6*9da22751SDavid van Moolenbroek.\"This code is derived from software contributed to The NetBSD Foundation
7*9da22751SDavid van Moolenbroek.\"by Nathan J. Williams.
8*9da22751SDavid van Moolenbroek.\"
9*9da22751SDavid van Moolenbroek.\"Redistribution and use in source and binary forms, with or without
10*9da22751SDavid van Moolenbroek.\"modification, are permitted provided that the following conditions
11*9da22751SDavid van Moolenbroek.\"are met:
12*9da22751SDavid van Moolenbroek.\"1. Redistributions of source code must retain the above copyright
13*9da22751SDavid van Moolenbroek.\"   notice, this list of conditions and the following disclaimer.
14*9da22751SDavid van Moolenbroek.\"2. Redistributions in binary form must reproduce the above copyright
15*9da22751SDavid van Moolenbroek.\"   notice, this list of conditions and the following disclaimer in the
16*9da22751SDavid van Moolenbroek.\"   documentation and/or other materials provided with the distribution.
17*9da22751SDavid van Moolenbroek.\"
18*9da22751SDavid van Moolenbroek.\"THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19*9da22751SDavid van Moolenbroek.\"``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20*9da22751SDavid van Moolenbroek.\"TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21*9da22751SDavid van Moolenbroek.\"PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22*9da22751SDavid van Moolenbroek.\"BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23*9da22751SDavid van Moolenbroek.\"CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24*9da22751SDavid van Moolenbroek.\"SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25*9da22751SDavid van Moolenbroek.\"INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26*9da22751SDavid van Moolenbroek.\"CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27*9da22751SDavid van Moolenbroek.\"ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28*9da22751SDavid van Moolenbroek.\"POSSIBILITY OF SUCH DAMAGE.
29*9da22751SDavid van Moolenbroek.\"
30*9da22751SDavid van Moolenbroek.Dd February 10, 2004
31*9da22751SDavid van Moolenbroek.Dt KVM_GETLWPS 3
32*9da22751SDavid van Moolenbroek.Os
33*9da22751SDavid van Moolenbroek.Sh NAME
34*9da22751SDavid van Moolenbroek.Nm kvm_getlwps
35*9da22751SDavid van Moolenbroek.Nd access state of LWPs belonging to a user process
36*9da22751SDavid van Moolenbroek.Sh LIBRARY
37*9da22751SDavid van Moolenbroek.Lb libkvm
38*9da22751SDavid van Moolenbroek.Sh SYNOPSIS
39*9da22751SDavid van Moolenbroek.In kvm.h
40*9da22751SDavid van Moolenbroek.In sys/param.h
41*9da22751SDavid van Moolenbroek.In sys/sysctl.h
42*9da22751SDavid van Moolenbroek.\" .Fa kvm_t *kd
43*9da22751SDavid van Moolenbroek.Ft struct kinfo_lwp *
44*9da22751SDavid van Moolenbroek.Fn kvm_getlwps "kvm_t *kd" "int pid" "u_long procaddr" "int *elemsize" "int *cnt"
45*9da22751SDavid van Moolenbroek.Sh DESCRIPTION
46*9da22751SDavid van Moolenbroek.Fn kvm_getlwps
47*9da22751SDavid van Moolenbroekreturns the set of LWPs belonging to the process specified by
48*9da22751SDavid van Moolenbroek.Fa pid
49*9da22751SDavid van Moolenbroekor
50*9da22751SDavid van Moolenbroek.Fa procaddr
51*9da22751SDavid van Moolenbroekin the kernel indicated by
52*9da22751SDavid van Moolenbroek.Fa kd .
53*9da22751SDavid van MoolenbroekThe number of LWPs found is returned in the reference parameter
54*9da22751SDavid van Moolenbroek.Fa cnt .
55*9da22751SDavid van MoolenbroekThe LWPs are returned as a contiguous array of
56*9da22751SDavid van Moolenbroek.Sy kinfo_lwp
57*9da22751SDavid van Moolenbroekstructures.
58*9da22751SDavid van MoolenbroekThis memory is locally allocated, and subsequent calls to
59*9da22751SDavid van Moolenbroek.Fn kvm_getlwps
60*9da22751SDavid van Moolenbroekand
61*9da22751SDavid van Moolenbroek.Fn kvm_close
62*9da22751SDavid van Moolenbroekwill overwrite this storage.
63*9da22751SDavid van Moolenbroek.Pp
64*9da22751SDavid van MoolenbroekOnly the first
65*9da22751SDavid van Moolenbroek.Fa elemsize
66*9da22751SDavid van Moolenbroekbytes of each array entry are returned.
67*9da22751SDavid van MoolenbroekIf the size of the
68*9da22751SDavid van Moolenbroek.Sy kinfo_lwp
69*9da22751SDavid van Moolenbroekstructure increases in size in a future release of
70*9da22751SDavid van Moolenbroek.Nx
71*9da22751SDavid van Moolenbroekthe kernel will only return the requested amount of data for
72*9da22751SDavid van Moolenbroekeach array entry and programs that use
73*9da22751SDavid van Moolenbroek.Fn kvm_getlwps
74*9da22751SDavid van Moolenbroekwill continue to function without the need for recompilation.
75*9da22751SDavid van Moolenbroek.Pp
76*9da22751SDavid van MoolenbroekIf called against an active kernel, the
77*9da22751SDavid van Moolenbroek.Fn kvm_getlwps
78*9da22751SDavid van Moolenbroekfunction will use the
79*9da22751SDavid van Moolenbroek.Xr sysctl 3
80*9da22751SDavid van Moolenbroekinterface and return information about the process identified by
81*9da22751SDavid van Moolenbroek.Fa pid ;
82*9da22751SDavid van Moolenbroekotherwise the kernel memory device file or swap device will be
83*9da22751SDavid van Moolenbroekaccessed and the process is identified by the location passed in
84*9da22751SDavid van Moolenbroek.Fa paddr .
85*9da22751SDavid van Moolenbroek.Sh RETURN VALUES
86*9da22751SDavid van Moolenbroek.Fn kvm_getlwps
87*9da22751SDavid van Moolenbroekreturns
88*9da22751SDavid van Moolenbroek.Dv NULL
89*9da22751SDavid van Moolenbroekon failure.
90*9da22751SDavid van Moolenbroek.Sh SEE ALSO
91*9da22751SDavid van Moolenbroek.Xr kvm 3 ,
92*9da22751SDavid van Moolenbroek.Xr kvm_close 3 ,
93*9da22751SDavid van Moolenbroek.Xr kvm_geterr 3 ,
94*9da22751SDavid van Moolenbroek.Xr kvm_getproc2 3 ,
95*9da22751SDavid van Moolenbroek.Xr kvm_getprocs 3 ,
96*9da22751SDavid van Moolenbroek.Xr kvm_nlist 3 ,
97*9da22751SDavid van Moolenbroek.Xr kvm_open 3 ,
98*9da22751SDavid van Moolenbroek.Xr kvm_openfiles 3 ,
99*9da22751SDavid van Moolenbroek.Xr kvm_read 3 ,
100*9da22751SDavid van Moolenbroek.Xr kvm_write 3
101*9da22751SDavid van Moolenbroek.Sh BUGS
102*9da22751SDavid van MoolenbroekThese routines do not belong in the kvm interface.
103