158f0484fSRodney W. Grimes.\" Copyright (c) 1992, 1993 258f0484fSRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 358f0484fSRodney W. Grimes.\" 458f0484fSRodney W. Grimes.\" This code is derived from software developed by the Computer Systems 558f0484fSRodney W. Grimes.\" Engineering group at Lawrence Berkeley Laboratory under DARPA contract 658f0484fSRodney W. Grimes.\" BG 91-66 and contributed to Berkeley. 758f0484fSRodney W. Grimes.\" 858f0484fSRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 958f0484fSRodney W. Grimes.\" modification, are permitted provided that the following conditions 1058f0484fSRodney W. Grimes.\" are met: 1158f0484fSRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 1258f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 1358f0484fSRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 1458f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 1558f0484fSRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 1658f0484fSRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software 1758f0484fSRodney W. Grimes.\" must display the following acknowledgement: 1858f0484fSRodney W. Grimes.\" This product includes software developed by the University of 1958f0484fSRodney W. Grimes.\" California, Berkeley and its contributors. 2058f0484fSRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors 2158f0484fSRodney W. Grimes.\" may be used to endorse or promote products derived from this software 2258f0484fSRodney W. Grimes.\" without specific prior written permission. 2358f0484fSRodney W. Grimes.\" 2458f0484fSRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2558f0484fSRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2658f0484fSRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2758f0484fSRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2858f0484fSRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2958f0484fSRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3058f0484fSRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3158f0484fSRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3258f0484fSRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3358f0484fSRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3458f0484fSRodney W. Grimes.\" SUCH DAMAGE. 3558f0484fSRodney W. Grimes.\" 3658f0484fSRodney W. Grimes.\" @(#)kvm_getprocs.3 8.1 (Berkeley) 6/4/93 377f3dea24SPeter Wemm.\" $FreeBSD$ 3858f0484fSRodney W. Grimes.\" 3958f0484fSRodney W. Grimes.Dd June 4, 1993 4058f0484fSRodney W. Grimes.Dt KVM_GETPROCS 3 4158f0484fSRodney W. Grimes.Os 4258f0484fSRodney W. Grimes.Sh NAME 4358f0484fSRodney W. Grimes.Nm kvm_getprocs , 4458f0484fSRodney W. Grimes.Nm kvm_getargv , 4558f0484fSRodney W. Grimes.Nm kvm_getenvv 4658f0484fSRodney W. Grimes.Nd access user process state 477f5e8c84SAlexey Zelkin.Sh LIBRARY 487f5e8c84SAlexey Zelkin.Lb libkvm 4958f0484fSRodney W. Grimes.Sh SYNOPSIS 5058f0484fSRodney W. Grimes.Fd #include <kvm.h> 51d6c492bbSBruce Evans.Fd #include <sys/param.h> 52d0be0c2bSJoerg Wunsch.Fd #include <sys/sysctl.h> 5358f0484fSRodney W. Grimes.\" .Fa kvm_t *kd 5458f0484fSRodney W. Grimes.br 5558f0484fSRodney W. Grimes.Ft struct kinfo_proc * 5658f0484fSRodney W. Grimes.Fn kvm_getprocs "kvm_t *kd" "int op" "int arg" "int *cnt" 5758f0484fSRodney W. Grimes.Ft char ** 5858f0484fSRodney W. Grimes.Fn kvm_getargv "kvm_t *kd" "const struct kinfo_proc *p" "int nchr" 5958f0484fSRodney W. Grimes.Ft char ** 6058f0484fSRodney W. Grimes.Fn kvm_getenvv "kvm_t *kd" "const struct kinfo_proc *p" "int nchr" 6158f0484fSRodney W. Grimes.Sh DESCRIPTION 6258f0484fSRodney W. Grimes.Fn kvm_getprocs 6358f0484fSRodney W. Grimesreturns a (sub-)set of active processes in the kernel indicated by 6458f0484fSRodney W. Grimes.Fa kd. 6558f0484fSRodney W. GrimesThe 6658f0484fSRodney W. Grimes.Fa op 6758f0484fSRodney W. Grimesand 6858f0484fSRodney W. Grimes.Fa arg 6958f0484fSRodney W. Grimesarguments constitute a predicate which limits the set of processes 7058f0484fSRodney W. Grimesreturned. The value of 7158f0484fSRodney W. Grimes.Fa op 7258f0484fSRodney W. Grimesdescribes the filtering predicate as follows: 7358f0484fSRodney W. Grimes.Pp 7458f0484fSRodney W. Grimes.Bl -tag -width 20n -offset indent -compact 75d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_ALL 7658f0484fSRodney W. Grimesall processes 77d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_PID 7858f0484fSRodney W. Grimesprocesses with process id 7958f0484fSRodney W. Grimes.Fa arg 80d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_PGRP 8158f0484fSRodney W. Grimesprocesses with process group 8258f0484fSRodney W. Grimes.Fa arg 83d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_SESSION 8458f0484fSRodney W. Grimesprocesses with session 8558f0484fSRodney W. Grimes.Fa arg 86d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_TTY 8758f0484fSRodney W. Grimesprocesses with tty 8858f0484fSRodney W. Grimes.Fa arg 89d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_UID 9058f0484fSRodney W. Grimesprocesses with effective user id 9158f0484fSRodney W. Grimes.Fa arg 92d0be0c2bSJoerg Wunsch.It Sy KERN_PROC_RUID 9358f0484fSRodney W. Grimesprocesses with real user id 9458f0484fSRodney W. Grimes.Fa arg 9558f0484fSRodney W. Grimes.El 9658f0484fSRodney W. Grimes.Pp 9758f0484fSRodney W. GrimesThe number of processes found is returned in the reference parameter 9858f0484fSRodney W. Grimes.Fa cnt . 9958f0484fSRodney W. GrimesThe processes are returned as a contiguous array of kinfo_proc structures. 10058f0484fSRodney W. GrimesThis memory is locally allocated, and subsequent calls to 10158f0484fSRodney W. Grimes.Fn kvm_getprocs 10258f0484fSRodney W. Grimesand 10358f0484fSRodney W. Grimes.Fn kvm_close 10458f0484fSRodney W. Grimeswill overwrite this storage. 10558f0484fSRodney W. Grimes.Pp 10658f0484fSRodney W. Grimes.Fn kvm_getargv 10758f0484fSRodney W. Grimesreturns a null-terminated argument vector that corresponds to the 10858f0484fSRodney W. Grimescommand line arguments passed to process indicated by 10958f0484fSRodney W. Grimes.Fa p . 11058f0484fSRodney W. GrimesMost likely, these arguments correspond to the values passed to 11158f0484fSRodney W. Grimes.Xr exec 3 11258f0484fSRodney W. Grimeson process creation. This information is, however, 11358f0484fSRodney W. Grimesdeliberately under control of the process itself. 11458f0484fSRodney W. GrimesNote that the original command name can be found, unaltered, 11558f0484fSRodney W. Grimesin the p_comm field of the process structure returned by 11658f0484fSRodney W. Grimes.Fn kvm_getprocs . 11758f0484fSRodney W. Grimes.Pp 11858f0484fSRodney W. GrimesThe 11958f0484fSRodney W. Grimes.Fa nchr 12058f0484fSRodney W. Grimesargument indicates the maximum number of characters, including null bytes, 12158f0484fSRodney W. Grimesto use in building the strings. If this amount is exceeded, the string 12258f0484fSRodney W. Grimescausing the overflow is truncated and the partial result is returned. 12358f0484fSRodney W. GrimesThis is handy for programs like 12458f0484fSRodney W. Grimes.Xr ps 1 12558f0484fSRodney W. Grimesand 12658f0484fSRodney W. Grimes.Xr w 1 12758f0484fSRodney W. Grimesthat print only a one line summary of a command and should not copy 12858f0484fSRodney W. Grimesout large amounts of text only to ignore it. 12958f0484fSRodney W. GrimesIf 13058f0484fSRodney W. Grimes.Fa nchr 13158f0484fSRodney W. Grimesis zero, no limit is imposed and all argument strings are returned in 13258f0484fSRodney W. Grimestheir entirety. 13358f0484fSRodney W. Grimes.Pp 13458f0484fSRodney W. GrimesThe memory allocated to the argv pointers and string storage 13558f0484fSRodney W. Grimesis owned by the kvm library. Subsequent 13658f0484fSRodney W. Grimes.Fn kvm_getprocs 13758f0484fSRodney W. Grimesand 13858f0484fSRodney W. Grimes.Xr kvm_close 3 13958f0484fSRodney W. Grimescalls will clobber this storage. 14058f0484fSRodney W. Grimes.Pp 14158f0484fSRodney W. GrimesThe 14258f0484fSRodney W. Grimes.Fn kvm_getenvv 14358f0484fSRodney W. Grimesfunction is similar to 14458f0484fSRodney W. Grimes.Fn kvm_getargv 14558f0484fSRodney W. Grimesbut returns the vector of environment strings. This data is 14658f0484fSRodney W. Grimesalso alterable by the process. 14758f0484fSRodney W. Grimes.Sh RETURN VALUES 14858f0484fSRodney W. Grimes.Fn kvm_getprocs , 14958f0484fSRodney W. Grimes.Fn kvm_getargv , 15058f0484fSRodney W. Grimesand 15158f0484fSRodney W. Grimes.Fn kvm_getenvv , 15258f0484fSRodney W. Grimesall return 15358f0484fSRodney W. Grimes.Dv NULL 15458f0484fSRodney W. Grimeson failure. 15558f0484fSRodney W. Grimes.Pp 15658f0484fSRodney W. Grimes.Sh BUGS 15758f0484fSRodney W. GrimesThese routines do not belong in the kvm interface. 15858f0484fSRodney W. Grimes.Sh SEE ALSO 15958f0484fSRodney W. Grimes.Xr kvm 3 , 16058f0484fSRodney W. Grimes.Xr kvm_close 3 , 16158f0484fSRodney W. Grimes.Xr kvm_geterr 3 , 16258f0484fSRodney W. Grimes.Xr kvm_nlist 3 , 16358f0484fSRodney W. Grimes.Xr kvm_open 3 , 16458f0484fSRodney W. Grimes.Xr kvm_openfiles 3 , 16558f0484fSRodney W. Grimes.Xr kvm_read 3 , 16658f0484fSRodney W. Grimes.Xr kvm_write 3 167