HP-UX Reference (11i v2 03/08) - 5 Miscellaneous Topics, 7 Device (Special) Files, 9 General Information, Index (vol 9)

s
glossary(9) glossary(9)
the shell variable PS2 appropriately in your
.profile file. (The C shell has no secon-
dary prompt.)
select code On Series 700 systems, part of an address used for devices. Multiple peripherals con-
nected to the same interface card share the same select code. On Series 700 systems,
select code consists of the bus and slot numbers for a device, both of which are deter-
mined by the particular I/O slot in which the I/O card resides. All functions on a multi-
function card share the same select code.
semaphore identifier (semid)
A unique positive integer created by a semget(2) system call. Each semid has a set of
semaphores and a data structure associated with it. The data structure is referred to as
semid_ds and contains the following members:
struct ipc_perm sem_perm; /* operation permission */
ushort sem_nsems; /* number of sems in set */
time_t sem_otime; /* last operation time */
time_t sem_ctime; /* last change time */
/* Times measured in secs since */
/* 00:00:00 GMT, Jan. 1, 1970 */
Semaphore identifiers can be created using ftok(3C).
sem_perm is a ipc_perm structure that specifies the semaphore operation permission
(see below). This structure includes the following members:
ushort cuid; /* creator user id */
ushort cgid; /* creator group id */
ushort uid; /* user id */
ushort gid; /* group id */
ushort mode; /* r/a permission */
The value of sem_nsems is equal to the number of semaphores in the set. Each sema-
phore in the set is referenced by a positive integer referred to as a sem_num. sem_num
values run sequentially from 0 to the value of sem_nsems minus 1. sem_otime is the
time of the last semop(2) operation, and sem_ctime is the time of the last semctl(2)
operation that changed a member of the above structure.
A semaphore is a data structure that contains the following members:
ushort semval; /* semaphore value */
short sempid; /* pid of last operation */
ushort semncnt; /* # awaiting semval > cval */
ushort semzcnt; /* # awaiting semval=0*/
semval is a nonnegative integer. sempid is equal to the process ID of the last process
that performed a semaphore operation on this semaphore. semncnt is a count of the
number of processes that are currently suspended awaiting this semaphore’s semval to
become greater than its current value. semzcnt is a count of the number of processes
that are currently suspended awaiting this semaphore’s semval to become zero.
semaphore operation permissions
In the semop(2) and semctl(2) system call descriptions, the permission required for an
operation is indicated for each operation. Whether a particular process has these permis-
sions for an object is determined by the object’s permission mode bits as follows:
00400 Read by user
00200 Alter by user
00060 Read, Alter by group
00006 Read, Alter by others
Read and Alter permissions on a
semid are granted to a process if one or more of the fol-
lowing are true:
The process’s effective user ID is superuser.
The process’s effective user ID matches
sem_perm.[c]uid in the data structure
associated with semid and the appropriate bit of the ‘‘user’’ portion (0600) of
sem_perm.mode is set.
HP-UX 11i Version 2: August 2003 18 Hewlett-Packard Company Section 919