unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

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

processor_bind(2)                System Calls                processor_bind(2)



NAME
       processor_bind - bind LWPs to a processor

SYNOPSIS
       #include <sys/types.h>
       #include <sys/processor.h>
       #include <sys/procset.h>

       int processor_bind(idtype_t idtype, id_t id, processorid_t processorid,
       processorid_t *obind);

DESCRIPTION
       The processor_bind() function binds the LWP  (lightweight  process)  or
       set  of  LWPs  specified by idtype and id to the processor specified by
       processorid. If obind is not NULL, this function also sets the  proces-
       sorid_t  variable pointed to by obind to the previous binding of one of
       the specified LWPs, or to PBIND_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_CTID, the binding affects all LWPs of all processes with
       process contract ID id.

       If  idtype  is  P_ZONEID, the binding affects all LWPs of all processes
       with zone ID id.

       If id is P_MYID, the specified LWP, process, task, or  process  is  the
       current one.

       If  processorid  is PBIND_NONE, the processor bindings of the specified
       LWPs are cleared.

       If  processorid is PBIND_QUERY, the processor bindings are not changed.

       The {PRIV_PROC_OWNER} privilege must be asserted in the  effective  set
       of  the calling process or the real or effective user ID of the calling
       process must match the real or effective user  ID  of  the  LWPs  being
       bound.   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.

       Processor 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 processor_bind() function will fail if:

       EFAULT          The location pointed to by  obind was not NULL and  not
                       writable by the user.



       EINVAL          The  specified  processor is not on-line, or the idtype
                       argument was not P_PID,  P_LWPID,  P_PROJID,  P_TASKID,
                       P_CTID, or P_ZONEID.

                       The  caller is in a non-global zone, the pools facility
                       is active, and the processor is not  a  member  of  the
                       zone's pool's processor set.



       EPERM           The  {PRIV_PROC_OWNER} privilege is not asserted in the
                       effective set of the calling process and  its  real  or
                       effective  user ID does not match the real or effective
                       user ID of one of the LWPs being bound.



       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
       pooladm(1M),  psradm(1M),  psrinfo(1M),  zoneadm(1M), exec(2), fork(2),
       p_online(2),   pset_bind(2),   sysconf(3C),   process(4),   project(4),
       attributes(5), privileges(5)



SunOS 5.10                        19 Sep 2004                processor_bind(2)