This function
takes a
pid
as its argument,
which can be either a process or thread id,
and fills a pointer to the
proc
structure in
*pp.
In the latter case, a process owning the specified thread is looked for.
The operation is performed by invoking the
pfind(9)
function.
The found process is returned locked.
For the
PGET_HOLD
case, it is returned unlocked (but held).
The
pget()
function can
perform additional manipulations, depending on a
flags
argument.
The
flags
argument is the logical OR of some subset of:
PGET_HOLD
|
If set, the found process will be held and unlocked.
|
PGET_CANSEE
|
If set, the found process will be checked for its visibility.
See
p_cansee(9).
|
PGET_CANDEBUG
|
If set, the found process will be checked for its debuggability.
See
p_candebug(9).
|
PGET_ISCURRENT
|
|
If set, the found process will be checked that it matches the current
process context.
|
PGET_NOTWEXIT
|
If set, the found process will be checked that it does not have the process
flag
P_WEXIT
set.
|
PGET_NOTINEXEC
|
|
If set, the found process will be checked that it does not have the process
flag
P_INEXEC
set.
|
PGET_NOTID
|
If set,
pid
is not assumed as a thread id for values larger than
PID_MAX.
|
PGET_WANTREAD
|
If set, the found process will be checked that the caller may get
a read access to its structure.
A shorthand for
( PGET_HOLD | PGET_CANDEBUG | PGET_NOTWEXIT).
|