Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

msqid_ds(4) [osf1 man page]

msqid_ds(4)						     Kernel Interfaces Manual						       msqid_ds(4)

NAME
msqid_ds - Defines a message queue SYNOPSIS
#include <sys/msg.h> struct msqid_ds{ struct ipc_perm msg_perm; struct msg *msg_first; struct msg *msg_last; u_short msg_cbytes; u_short msg_qnum; u_short msg_qbytes; u_short msg_lspid; ushort msg_lrpid; time_t msg_stime; time_t msg_rtime; time_t msg_ctime; }; DESCRIPTION
The msqid_ds structure defines a message queue associated with a message queue ID. There is one queue per message queue ID. Collectively, the queues are stored as an array, with message queue IDs serving as an index into the array. A message queue is implemented as a linked list of messages, with msg_first amd msg_last pointing to the first and last messages on the queue. The IPC permissions for the message queue are implemented in a separate, but associated, ipc_perm structure. A message queue is created indirectly via the msgget() call. If msgget() is called with a non-existent message queue ID, the kernel allo- cates a new msqid_ds structure, initializes it, and returns the message queue ID that is to be associated with the message queue. FIELDS
The ipc_perm structure that defines permissions for message operations. See NOTES. A pointer to the first message on the queue. A pointer to the last message on the queue. The current number of bytes on the queue. The number of messages currently on the queue. The maximum number of bytes allowed on the queue. The process ID of the last process that called msgsnd() for the queue. The process ID of the last process that called msgrcv() for the queue. The time of the last msgsnd() operation. The time of the last msgrcv() operation. The time of the last msgctl() operation that changed a member of the msqid_ds structure. NOTES
The msg_perm field identifies the associated ipc_perm structure that defines the permissions for operations on the message queue. The ipc_perm structure (from the sys/ipc.h header file) is shown here. struct ipc_perm { ushort uid; /* owner's user id */ ushort gid; /* owner's group id */ ushort cuid; /* creator's user id */ ushort cgid; /* creator's group id */ ushort mode; /* access modes */ ushort seq; /* slot usage sequence number */ key_t key; /* key */ }; The mode field is a 9-bit field that contains the permissions for message operations. The first three bits identify owner permissions; the second three bits identify group permissions; and the last three bits identify other permissions. In each group, the first bit indicates read permission; the second bit indicates write permission; and the third bit is not used. RELATED INFORMATION
Functions: msgctl(2), msgget(2), msgrcv(2), msgsnd(2) delim off msqid_ds(4)

Check Out this Related Man Page

shmid_ds(4)						     Kernel Interfaces Manual						       shmid_ds(4)

NAME
shmid_ds - Defines a shared memory region SYNOPSIS
#include <sys/shm.h> struct shmid_ds{ struct ipc_perm shm_perm; int shm_segsz; u_short shm_lpid; u_short shm_cpid; u_short shm_nattch; time_t shm_atime; time_t shm_dtime; time_t shm_ctime; }; DESCRIPTION
The shmid_ds structure defines a shared memory region associated with a shared memory region ID. There is one shared memory region per ID. Collectively, the shared memory regions are maintained in a shared memory table, with the shared memory region IDs identifying the entries in the table. The IPC permissions for the shared memory regions are implemented in a separate, but associated, ipc_perm structure. A shared memory region is created indirectly via the shmget() call. If shmget() is called with a non-existent shared memory region ID, the kernel allocates a new shmid_ds structure, initializes it, and returns the ID that is to be associated with the region. The kernel allocates actual memory of shm_segsz bytes only when a process attaches a region to its address space. Attached regions are maintained in a separate region table. The entries in the shared memory table point to the associated attached regions in the region ta- ble. The same shared memory region can be attached multiple times, by the same or different processes. Each attachment of the region cre- ates a new entry in the region table. After a process attaches a shared memory region, the region becomes part of the process's virtual address space. Processes access shared memory regions by using the same machine instructions used to access any virtual address. FIELDS
The ipc_perm structure that defines permissions for shared memory operations. See NOTES. The size of the shared memory region, in bytes. The process ID of the process that created the shared memory region ID. The process ID of the last process that performed a shmat() or shmdt() operation on the shared memory region. The number of processes that currently have this region attached. The time of the last shmat() operation. The time of the last shmdt() operation. The time of the last shmctl() operation that changed a member of the shmid_ds structure. NOTES
The shm_perm field identifies the associated ipc_perm structure that defines the permissions for operations on the shared memory region. The ipc_perm structure (from the sys/ipc.h header file) is shown here. struct ipc_perm { ushort uid; /* owner's user id */ ushort gid; /* owner's group id */ ushort cuid; /* creator's user id */ ushort cgid; /* creator's group id */ ushort mode; /* access modes */ ushort seq; /* slot usage sequence number */ key_t key; /* key */ }; The mode field is a nine-bit field that contains the permissions for shared memory operations. The first three bits identify owner permis- sions; the second three bits identify group permissions; and the last three bits identify other permissions. In each group, the first bit indicates read permission; the second bit indicates write permission; and the third bit is not used. RELATED INFORMATION
Functions: shmat(2), shmdt(2), shmctl(2), shmget(2) delim off shmid_ds(4)
Man Page