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 LWP or set of LWPs specified by idtype and id are bound to the processor set specified by pset. Additionally, if obind is not NULL, the psetid_t variable pointed to by opset will be set 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 process with process ID (PID) id.
If idtype is P_LWPID, the binding affects the LWP of the current process with LWP ID id.
If id is P_MYID, the specified LWP or process is the current one.
If pset is PS_NONE, the processor set bindings of the specified LWPs are cleared.
If pset is PS_QUERY, the processor set bindings are not changed.
The effective user of the calling process must be super-user, 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.
In addition, if the processor set type of pset is PS_PRIVATE (see pset_info(2)), the effective user of the calling process must be super-user.
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 processor binding is later removed, the processor set binding becomes effective.
RETURN VALUES
These calls return 0 if successful; otherwise, −1 is returned and errno is set to reflect the error.
ERRORS
ESRCH No processes or LWPs were found to match the criteria specified by idtype and id.
EINVAL An invalid processor set ID was specified; or idtype was not P_PID or P_LWPID.
EFAULT The location pointed to by opset was not NULL and not writable by the user.
EBUSY One of the LWPs is bound to a processor, and the specified processor set does not include that processor.
EPERM The effective user of the calling process is not super-user, and either the processor set type of pset is PS_USER, or the real or effective user ID of the calling process does not match the real or effective user ID of one of the LWPs being bound.
SEE ALSO
pbind(1M), psrset(1M), processor_bind(2), pset_create(2), pset_info(2)
SunOS 5.6 — Last change: 17 May 1996