Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 May 2014 21:20:53 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Sergey Kandaurov <pluknet@freebsd.org>
Cc:        Mikolaj Golub <trociny@freebsd.org>, John-Mark Gurney <jmg@funkthat.com>, Mateusz Guzik <mjguzik@gmail.com>, FreeBSD Arch <freebsd-arch@freebsd.org>
Subject:   Re: safer alternative for pfind and pget?
Message-ID:  <20140503182053.GC74331@kib.kiev.ua>
In-Reply-To: <CAE-mSO%2B7=0wkowLKse_KwsE7yMMETv_MDifgX5RgCt0LTTotCA@mail.gmail.com>
References:  <20140502220925.GB28158@dft-labs.eu> <20140502223609.GU43976@funkthat.com> <20140503091213.GA3876@gmail.com> <CAE-mSO%2B7=0wkowLKse_KwsE7yMMETv_MDifgX5RgCt0LTTotCA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--jy6Sn24JjFx/iggw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, May 03, 2014 at 01:59:12PM +0400, Sergey Kandaurov wrote:
> On 3 May 2014 13:12, Mikolaj Golub <trociny@freebsd.org> wrote:
> > On Fri, May 02, 2014 at 03:36:09PM -0700, John-Mark Gurney wrote:
> >> Mateusz Guzik wrote this message on Sat, May 03, 2014 at 00:09 +0200:
> >> > - pget which provides limited (mostly negative) filtering
> >>
> >> as pget is undocumented, please make it part of this project to
> >> document it..
> >
> > pluknet had a man page for pget long time ago, reviewed by kib. I
> > thought it was committed. Don't know why it did not happen.
>=20
> This is something I have for pget(9).
> If it is good enough, I'll commit it.
>=20
See some minor notes below.  And yes, please commit this.

> .\" Copyright (c) 2011 Sergey Kandaurov
> .\" All rights reserved.
> .\"
> .\" Redistribution and use in source and binary forms, with or without
> .\" modification, are permitted provided that the following conditions
> .\" are met:
> .\" 1. Redistributions of source code must retain the above copyright
> .\"    notice, this list of conditions and the following disclaimer.
> .\" 2. Redistributions in binary form must reproduce the above copyright
> .\"    notice, this list of conditions and the following disclaimer in the
> .\"    documentation and/or other materials provided with the distributio=
n.
> .\"
> .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PU=
RPOSE
> .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIAB=
LE
> .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUE=
NTIAL
> .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOO=
DS
> .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, S=
TRICT
> .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY=
 WAY
> .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> .\" SUCH DAMAGE.
> .\"
> .\" $FreeBSD$
> .\"
> .Dd December 21, 2011
> .Dt PGET 9
> .Os
> .Sh NAME
> .Nm pget
> .Nd locate a process by number
> .Sh SYNOPSIS
> .In sys/param.h
> .In sys/proc.h
> .Ft int
> .Fn pget "pid_t pid" "int flags" "struct proc **pp"
> .Sh DESCRIPTION
> This function
> takes a
> .Fa pid
> as its argument,
which can be either a process or thread id,
In the later case, a process owning the specified thread is looked for.

>and fills a pointer to the
> .Vt proc
> structure in
> .Fa *pp .
> The actual operation is performed by invoking the
> .Xr pfind 9
> function.
> The found process is returned locked.
> Only for
> .Dv PGET_HOLD
> case it is returned unlocked (but referenced).
s/referenced/held/

> The
> .Fn pget
> function can
> perform additional manipulations, depending on a
> .Fa flags
> argument.
> .Pp
> The
> .Fa flags
> argument is the logical OR of some subset of:
> .Bl -tag -width ".Dv PGET_NOTINEXEC"
> .It Dv PGET_HOLD
> If set, the found process will be referenced and unlocked.
> .It Dv PGET_CANSEE
> If set, the found process will be checked for its visibility.
> See
> .Xr p_cansee 9 .
> .It Dv PGET_CANDEBUG
> If set, the found process will be checked for its debuggability.
> See
> .Xr p_candebug 9 .
> .It Dv PGET_ISCURRENT
> If set, the found process will be checked that it matches the current
> process context.
> .It Dv PGET_NOTWEXIT
> If set, the found process will be checked that it does not have the proce=
ss
> flag
> .Dv P_WEXIT
> set.
> .It Dv PGET_NOTINEXEC
> If set, the found process will be checked that it does not have the proce=
ss
> flag
> .Dv P_INEXEC
> set.
> .It Dv PGET_NOTID
> If set,
> .Fa pid
> is not assumed as a thread id for values larger than
> .Dv PID_MAX .
> .It Dv PGET_WANTREAD
> A shorthand for
> .Pq Dv PGET_HOLD | PGET_CANDEBUG | PGET_NOTWEXIT .
> .El
> .Sh RETURN VALUES
> If the process is found in the specified way, then zero is returned,
> otherwise an appropriate error code is returned.
> .Sh SEE ALSO
> .Xr p_candebug 9 ,
> .Xr p_cansee 9 ,
> .Xr pfind 9

--jy6Sn24JjFx/iggw
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (FreeBSD)

iQIcBAEBAgAGBQJTZTOFAAoJEJDCuSvBvK1BaJMQAIeEuT9RHLqR6iHDkE3iLaSc
zfiNxMXkz6j0J9o1nlBvXmY8Ra7EvwhGQydmhxh5LJUfQdRKbz98jhzxXdUsLEUc
ThePYNCaEsM64pnF+OdL2X9BVkINj4Yaa8sAQVhD0Eot49xUhPcEw4StC7fx6qO5
uLBqxtlzcVnVUGyKJwLmi2BZn2Hgu8igsAs4i3zlzq6IIgbVvFLUSEdah0JyGw/2
y1r5CSNk57LovlYaMPIgPvth+n/StPJnP144XVgg+Cvsy6r7kbd4OwBx6MmsrcVq
7IFjVtRDRhYC3avj/3KyAgHwF/pb0YEGtKbVd5bJCR2pAkcrf4iUybjmGnhGy3R+
pgUktME+OI0iydVEpHbwrCvHNEAFmp93Sny7wYMzo0q6hz6wK2e7ehNskFQy0RD2
5u9MZHPcQbUh6nMV/lOhOGuyPJL1xV61cyfIiCvTmiqrw1xYnmGvR4WNeiHSQaek
0mUOUS79cFiAKF0rWzjrwOXiK8xPBclv+0aNk6FHsjI1B7qBM0Nh0gVEZlUfvlRP
QiJ/Ni130ot6fhlamgjphrjAXEAnWcPvWZ1QaG6NzHPChES2daUY7+LC5Nn+eKAE
cNV5cmeq2aGbPL8IRmn2rmTPCeAdbOvT3Q0fjY4GTA7UWfXmJlK+FsdoqXcgOIoK
7Pf5/1aFHW/9JKjkPLp4
=azoE
-----END PGP SIGNATURE-----

--jy6Sn24JjFx/iggw--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140503182053.GC74331>