pset_bind(2)
NAME
pset_bind - bind LWPs to a set of processors
SYNOPSIS
#include <sys/pset.h>
int pset_bind(psetid_t pset, idtype_t idtype, id_t id,
psetid_t *opset);
DESCRIPTION
The pset_bind() function binds the LWP or set of LWPs speci-
fied by idtype and id to the processor set specified by
pset. If obind is not NULL, pset_bind() sets the psetid_t
variable pointed to by opset to the previous processor set
binding of one of the specified LWP, or to PS_NONE if the
selected LWP was not bound.
If idtype is P_PID, the binding affects all LWPs of the pro-
cess with process ID (PID) id.
If idtype is P_LWPID, the binding affects the LWP of the
current process with LWP ID id.
If idtype is P_TASKID, the binding affects all LWPs of all
processes with task ID id.
If idtype is P_PROJID, the binding affects all LWPs of all
processes with project ID id.
If id is P_MYID, the specified LWP, process, task, or pro-
cess is the current one.
If pset is PS_NONE, the processor set bindings of the speci-
fied LWPs are cleared.
If pset is PS_QUERY, the processor set bindings are not
changed.
If pset is PS_MYID, the specified LWPs are bound to the same
processor set as the caller. If the caller is not bound to a
processor set, the processor set bindings are cleared.
The effective user of the calling process must be superuser,
or its real or effective user ID must match the real or
effective user ID of the LWPs being bound, or pset must be
PS_QUERY. If the calling process does not have permission to
change all of the specified LWPs, the bindings of the LWPs
for which it does have permission will be changed even
though an error is returned.
If the processor set type of pset is PS_PRIVATE (see
pset_info(2)), the effective user of the calling process
must be superuser.
LWPs that have been bound to a processor with
processor_bind(2) may also be bound to a processor set if
the processor is part of the processor set. If this occurs,
the binding to the processor remains in effect. If the pro-
cessor binding is later removed, the processor set binding
becomes effective.
Processor set bindings are inherited across fork(2) and
exec(2).
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, -1 is
returned and errno is set to indicate the error.
ERRORS
The pset_bind() function will fail if:
EBUSY One of the LWPs is bound to a processor, and the
specified processor set does not include that proces-
sor.
EFAULT
The location pointed to by opset was not NULL and not
writable by the user.
EINVAL
An invalid processor set ID was specified; or idtype
was not P_PID, P_LWPID, P_PROJID, or P_TASKID.
EPERM The effective user of the calling process is not
superuser and either the real or effective user ID of
the calling process does not match the real or effec-
tive user ID of one of the LWPs being bound, or the
processor set from which one or more of the LWPs are
being unbound has the PSET_NOESCAPE attribute set. See
pset_setattr(2) for more information about processor
set attributes.
ESRCH No processes, LWPs, or tasks were found to match the
criteria specified by idtype and id.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Stable |
|_____________________________|_____________________________|
| MT-Level | Async-Signal-Safe |
|_____________________________|_____________________________|
SEE ALSO
pbind(1M), psrset(1M), exec(2), fork(2), processor_bind(2),
pset_create(2), pset_info(2), pset_setattr(2),
pset_getloadavg(3C), project(4), attributes(5)
Man(1) output converted with
man2html