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