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