unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

pset_bind(2)                     System Calls                     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  specified  by
       idtype  and  id to the processor set specified by pset. If opset 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  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 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 idtype is P_ZONEID, the binding affects all LWPs  of  all  processes
       with zone ID id.

       If idtype is P_CTID, the binding affects all LWPs of all processes with
       process contract ID id.

       If id is P_MYID, the specified LWP, process, task,  process,  zone,  or
       process contract 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.

       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 {PRIV_SYS_RES_CONFIG} privilege must be asserted in  the  effective
       set of the calling process or pset must be PS_QUERY.

       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  pro-
       cessor  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.

       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 speci-
                       fied processor set does not include that processor.



       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, P_TASKID, P_ZONEID,
                       or P_CTID.



       ENOTSUP         The pools facility  is  active.   See  pooladm(1M)  and
                       pool_set_status(3POOL)  for  information about enabling
                       and disabling the  pools  facility.  Processes  can  be
                       bound  to  pools  using the poolbind(1M) utility or the
                       pool_set_binding(3POOL) function.



       EPERM           The {PRIV_PROC_OWNER} is not asserted in  the  effecive
                       set  of  the  calling  process  and  either 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, or the processor set from which one or  more  of
                       the  LWPs  are  being  unbound  has  the  PSET_NOESCAPE
                       attribute set and {PRIV_SYS_RES_CONFIG) is not asserted
                       in  the  effective  set  of  the  calling  process. 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 attributes:


       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityStable
       MT-LevelAsync-Signal-Safe


SEE ALSO
       pbind(1M), pooladm(1M),  poolbind(1M),  psrset(1M),  exec(2),  fork(2),
       processor_bind(2),   pset_create(2),   pset_info(2),   pset_setattr(2),
       pool_set_binding(3POOL),  pool_set_status(3POOL),  pset_getloadavg(3C),
       process(4), project(4), attributes(5), privileges(5)



SunOS 5.10                        19 Jul 2004                     pset_bind(2)