Annotation of coherent/a/usr/man/COHERENT/semctl, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: semctl()               COHERENT System Call              semctl()
                      4: 
                      5: 
                      6: 
                      7: 
                      8: Control semaphore operations
                      9: 
                     10: #include <sys/sem.h>
                     11: sseemmccttll(_s_e_m_i_d, _s_e_m_n_u_m, _c_m_d, _a_r_g)
                     12: iinntt _s_e_m_i_d, _c_m_d, _s_e_m_n_u_m;
                     13: uunniioonn sseemmuunn {
                     14:         iinntt _v_a_l;
                     15:         ssttrruucctt sseemmiidd_ddss *_b_u_f;
                     16:         uunnssiiggnneedd sshhoorrtt _a_r_r_a_y[];
                     17: } _a_r_g;
                     18: 
                     19: semctl controls a  variety of semaphore operations.  cmd sets the
                     20: operation to  be performed; the following  cmds are executed with
                     21: respect to the semaphore specified by semid and semnum:
                     22: 
                     23: GGEETTVVAALL
                     24: Return the value of sseemmvvaall (READ).
                     25: 
                     26: SSEETTVVAALL
                     27: Set the value of sseemmvvaall to _a_r_g._v_a_l (ALTER).
                     28: 
                     29: GGEETTPPIIDD
                     30: Return the value of sseemmppiidd (READ).
                     31: 
                     32: GGEETTNNCCNNTT
                     33: Return the value of sseemmnnccnntt (READ).
                     34: 
                     35: GGEETTZZCCNNTT
                     36: Return the value of sseemmzzccnntt (READ).
                     37: 
                     38: The following cmds  return and set, respectively, every semval in
                     39: the set of semaphores.
                     40: 
                     41: GGEETTAALLLL     Place  semvals  into  array  pointed to  by  _a_r_g._a_r_r_a_y
                     42:           (READ).
                     43: 
                     44: SSEETTAALLLL     Set  semvals  according to  the  array  pointed to  by
                     45:           _a_r_g._a_r_r_a_y (ALTER).
                     46: 
                     47: The following cmds are also available:
                     48: 
                     49: IIPPCC_SSTTAATT   Place the  current value  of each  member of  the data
                     50:           structure  associated  with  semid into  the  structure
                     51:           pointed to by _a_r_g._b_u_f (READ).
                     52: 
                     53: IIPPCC_SSEETT    Set the  value of  the following  members of  the data
                     54:           structure  associated with  semid to  the corresponding
                     55:           value found in the structure pointed to by arg.buf:
                     56: 
                     57:           sem_perm.uid
                     58:           sem_perm.gid
                     59:           sem_perm.mode /* only low 9 bits */
                     60: 
                     61:           This command can only be executed by a process that has
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 
                     67: 
                     68: 
                     69: semctl()               COHERENT System Call              semctl()
                     70: 
                     71: 
                     72: 
                     73:           an effective  user identifier  equal to either  that of
                     74:           superuser or  to the value of  sem_perm.uid in the data
                     75:           structure associated with semid.
                     76: 
                     77: IIPPCC_RRMMIIDD  Remove  the system  identifier specified by  semid from
                     78:           the system  and destroy the set  of semaphores and data
                     79:           structure associated with it.  This cmd can only be ex-
                     80:           ecuted by  a process that  has an effective  user iden-
                     81:           tifier equal  to either  that of  super user or  to the
                     82:           value of sem_perm.uid  in the data structure associated
                     83:           with semid.
                     84: 
                     85: semctl will fail if one or more of the following are true:
                     86: 
                     87: *  semid is not a valid semaphore identifier [EINVAL].
                     88: 
                     89: *  semnum is less than zero or greater than sem_nsems [EINVAL].
                     90: 
                     91: *  cmd is not a valid command [EINVAL].
                     92: 
                     93: *   Operation  permission  is  denied  to  the  calling  process.
                     94:    [EACCES]
                     95: 
                     96: *  cmd is SETVAL or SETALL and the value to which semval is to be
                     97:    set is greater than the system imposed maximum [ERANGE].
                     98: 
                     99: *  cmd  is equal  to IPC_RMID or  IPC_SET and the  effective user
                    100:    identifier of the calling process  is not equal to that of su-
                    101:    peruser and  it is not  equal to the value  of sem_perm.uid in
                    102:    the data structure associated with semid [EPERM].
                    103: 
                    104: *  arg.buf points to an illegal address [EFAULT].
                    105: 
                    106: ***** Return Value *****
                    107: 
                    108: Upon successful completion,  the value returned depends on cmd as
                    109: follows:
                    110: 
                    111: 
                    112:      GGEETTVVAALL    The value of sseemmvvaall.
                    113:      GGEETTPPIIDD    The value of sseemmppiidd.
                    114:      GGEETTNNCCNNTT   The value of sseemmnnccnntt.
                    115:      GGEETTZZCCNNTT   The value of sseemmzzccnntt.
                    116:      All othersZero
                    117: 
                    118: 
                    119: Otherwise,  semctl returns  -1 and sets  eerrrrnnoo to  an appropriate
                    120: value.
                    121: 
                    122: ***** Files *****
                    123: 
                    124: /usr/include/sys/ipc.h
                    125: /usr/include/sys/sem.h
                    126: /dev/sem
                    127: /drv/sem
                    128: 
                    129: 
                    130: COHERENT Lexicon                                           Page 2
                    131: 
                    132: 
                    133: 
                    134: 
                    135: semctl()               COHERENT System Call              semctl()
                    136: 
                    137: 
                    138: 
                    139: 
                    140: ***** See Also *****
                    141: 
                    142: COHERENT system calls, sem, semget(), semop()
                    143: 
                    144: ***** Notes *****
                    145: 
                    146: To  improve  portability,  the  COHERENT  system  implements  the
                    147: semaphore functions  as a device driver rather  than as an actual
                    148: system call.
                    149: 
                    150: 
                    151: 
                    152: 
                    153: 
                    154: 
                    155: 
                    156: 
                    157: 
                    158: 
                    159: 
                    160: 
                    161: 
                    162: 
                    163: 
                    164: 
                    165: 
                    166: 
                    167: 
                    168: 
                    169: 
                    170: 
                    171: 
                    172: 
                    173: 
                    174: 
                    175: 
                    176: 
                    177: 
                    178: 
                    179: 
                    180: 
                    181: 
                    182: 
                    183: 
                    184: 
                    185: 
                    186: 
                    187: 
                    188: 
                    189: 
                    190: 
                    191: 
                    192: 
                    193: 
                    194: 
                    195: 
                    196: COHERENT Lexicon                                           Page 3
                    197: 
                    198: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.