Annotation of cci/usr/src/man/man2/semctl.2i, revision 1.1

1.1     ! root        1: .TH SEMCTL 2
        !             2: .SH NAME
        !             3: semctl \- semaphore control operations
        !             4: .SH SYNOPSIS
        !             5: .B #include <sys/types.h>
        !             6: .br
        !             7: .B #include <sys/ipc.h>
        !             8: .br
        !             9: .B #include <sys/sem.h>
        !            10: .PP
        !            11: .nf
        !            12: .B "int semctl (semid, semnum, cmd, arg)"
        !            13: .B int semid, cmd;
        !            14: .B int semnum;
        !            15: .B union semun {
        !            16: .RS
        !            17: .ta 8n 28n
        !            18: .nf
        !            19: .B int val;
        !            20: .B struct semid_ds \(**buf;
        !            21: .B ushort \(**array;
        !            22: .fi
        !            23: .RE
        !            24: .B } arg;
        !            25: .tr ~~
        !            26: .SH DESCRIPTION
        !            27: .I Semctl
        !            28: provides a variety of semaphore control operations as specified by
        !            29: .IR cmd .
        !            30: .PP
        !            31: The following
        !            32: .IR cmd s
        !            33: are executed with respect to the semaphore specified by
        !            34: .IR semid " and " semnum:
        !            35: .RS
        !            36: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            37: .SM
        !            38: .B GETVAL
        !            39: Return the value of semval (see
        !            40: .IR intro (2)).
        !            41: .SM {READ}
        !            42: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            43: .SM
        !            44: .B SETVAL
        !            45: Set the value of semval to
        !            46: .IR arg.val .
        !            47: .SM {ALTER}
        !            48: When this cmd is successfully executed, the semadj value corresponding to the
        !            49: specified semaphore in all processes is cleared.
        !            50: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            51: .SM
        !            52: .B GETPID
        !            53: Return the value of sempid.
        !            54: .SM {READ}
        !            55: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            56: .SM
        !            57: .B GETNCNT
        !            58: Return the value of semncnt.
        !            59: .SM {READ}
        !            60: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            61: .SM
        !            62: .B GETZCNT
        !            63: Return the value of semzcnt.
        !            64: .SM {READ}
        !            65: .RE
        !            66: .PP
        !            67: The following
        !            68: .IR cmd s
        !            69: return and set, respectively, every semval in the set of semaphores.
        !            70: .RS
        !            71: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            72: .SM
        !            73: .B GETALL
        !            74: Place semvals into array pointed to by
        !            75: .IR arg.array .
        !            76: .SM {READ}
        !            77: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            78: .SM
        !            79: .B SETALL
        !            80: Set semvals according to the array pointed to by
        !            81: .IR arg.array .
        !            82: .SM {ALTER}
        !            83: When this cmd is successfully executed the semadj values corresponding to each
        !            84: specified semaphore in all processes are cleared.
        !            85: .RE
        !            86: .PP
        !            87: The following
        !            88: .IR cmd s
        !            89: are also available:
        !            90: .RS
        !            91: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !            92: .SM
        !            93: .B IPC_STAT
        !            94: Place the current value of each member of the data structure associated with
        !            95: .I semid
        !            96: into the structure pointed to by
        !            97: .IR arg.buf .
        !            98: The contents of this structure are defined in
        !            99: .IR intro (2).
        !           100: .SM {READ}
        !           101: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !           102: .SM
        !           103: .B IPC_SET
        !           104: Set the value of the following members of the data structure associated with
        !           105: .I semid
        !           106: to the corresponding value found in the structure pointed to by
        !           107: .IR arg.buf :
        !           108: .SP 1v
        !           109: .RS
        !           110: .nf
        !           111: .B sem_perm.uid
        !           112: .B sem_perm.gid
        !           113: .B "sem_perm.mode /\(** only low 9 bits \(**/"
        !           114: .fi
        !           115: .RE
        !           116: .IP
        !           117: This cmd can only be executed by a process that has an effective user
        !           118: .SM ID
        !           119: equal to either that of super-user or to the value of
        !           120: .B sem_perm.uid
        !           121: in the data structure associated with
        !           122: .IR semid .
        !           123: .TP \w'\fBIPC_RMID\fP\ \ \ 'u
        !           124: .SM
        !           125: .B IPC_RMID
        !           126: Remove the semaphore identifier specified by
        !           127: .I semid
        !           128: from the system and destroy the set of semaphores and data structure
        !           129: associated with it.
        !           130: This cmd can only be executed by a process that has an effective user
        !           131: .SM ID
        !           132: equal to either that of super-user or to the value of
        !           133: .B sem_perm.uid
        !           134: in the data structure associated with
        !           135: .IR semid .
        !           136: .PP
        !           137: .I Semctl
        !           138: will fail if one or more of the following are true:
        !           139: .TP 15
        !           140: \s-1\%[EINVAL]\s+1
        !           141: .I Semid
        !           142: is not a valid semaphore identifier.
        !           143: .TP
        !           144: \s-1\%[EINVAL]\s+1
        !           145: .I Semnum
        !           146: is less than zero or greater than
        !           147: .BR sem_nsems .
        !           148: .TP
        !           149: \s-1\%[EINVAL]\s+1
        !           150: .I Cmd
        !           151: is not a valid command.
        !           152: .TP
        !           153: \s-1\%[EACCES]\s+1
        !           154: Operation permission is denied to the calling process (see
        !           155: .IR intro (2)).
        !           156: .TP
        !           157: \s-1\%[ERANGE]\s+1
        !           158: .I Cmd
        !           159: is
        !           160: .SM
        !           161: .B SETVAL
        !           162: or
        !           163: .SM
        !           164: .B SETALL
        !           165: and the value to which semval is to be set is greater than
        !           166: the system imposed maximum.
        !           167: .TP
        !           168: \s-1\%[EPERM]\s+1
        !           169: .I Cmd
        !           170: is equal to
        !           171: .SM
        !           172: .B IPC_RMID
        !           173: or
        !           174: .SM
        !           175: .B IPC_SET
        !           176: and the effective user
        !           177: .SM ID
        !           178: of the calling process is not equal to that of super-user and it is
        !           179: not equal to the value of
        !           180: .B sem_perm.uid
        !           181: in the data structure associated with
        !           182: .IR semid .
        !           183: .TP
        !           184: \s-1\%[EFAULT]\s+1
        !           185: .I Arg.buf
        !           186: points to an illegal address.
        !           187: .SH "RETURN VALUE"
        !           188: Upon successful completion,
        !           189: the value returned depends on
        !           190: .I cmd\^
        !           191: as follows:
        !           192: .PD 0
        !           193: .RS
        !           194: .TP 1.5i
        !           195: .SM
        !           196: .B GETVAL
        !           197: The value of semval.
        !           198: .TP
        !           199: .SM
        !           200: .B GETPID
        !           201: The value of sempid.
        !           202: .TP
        !           203: .SM
        !           204: .B GETNCNT
        !           205: The value of semncnt.
        !           206: .TP
        !           207: .SM
        !           208: .B GETZCNT
        !           209: The value of semzcnt.
        !           210: .TP
        !           211: All others
        !           212: A value of 0.
        !           213: .RE
        !           214: .PP
        !           215: .PD
        !           216: Otherwise, a value of \-1 is returned and
        !           217: .I errno\^
        !           218: is set to indicate the error.
        !           219: .SH SEE ALSO
        !           220: intro(2), semget(2), semop(2).
        !           221: .\"    @(#)semctl.2    6.2 of 9/6/83

unix.superglobalmegacorp.com

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