Var IPCerror : longint; |
Const IPC_CREAT = 1 shl 9; { create if key is nonexistent } IPC_EXCL = 2 shl 9; { fail if key exists } IPC_NOWAIT = 4 shl 9; { return error on wait } |
IPC_RMID = 0; { remove resource } IPC_SET = 1; { set ipc_perm options } IPC_STAT = 2; { get ipc_perm options } IPC_INFO = 3; { see ipcs } |
const MSG_NOERROR = 1 shl 12; MSG_EXCEPT = 2 shl 12; MSGMNI = 128; MSGMAX = 4056; MSGMNB = 16384; |
const SEM_UNDO = $1000; GETPID = 11; GETVAL = 12; GETALL = 13; GETNCNT = 14; GETZCNT = 15; SETVAL = 16; SETALL = 17; |
SEMMNI = 128; SEMMSL = 32; SEMMNS = (SEMMNI * SEMMSL); SEMOPM = 32; SEMVMX = 32767; |
const SHM_R = 4 shl 6; SHM_W = 2 shl 6; SHM_RDONLY = 1 shl 12; SHM_RND = 2 shl 12; SHM_REMAP = 4 shl 12; SHM_LOCK = 11; SHM_UNLOCK = 12; |
Type PULong = ^Cardinal; PWord = ^Word; |
Type TKey = Longint; |
type PIPC_Perm = ^TIPC_Perm; TIPC_Perm = record key : TKey; uid, gid, cuid, cgid, mode, seq : Word; end; |
Type PSHMid_DS = ^TSHMid_ds; TSHMid_ds = record shm_perm : TIPC_Perm; shm_segsz : longint; shm_atime : longint; shm_dtime : longint; shm_ctime : longint; shm_cpid : word; shm_lpid : word; shm_nattch : integer; shm_npages : word; shm_pages : Pointer; attaches : pointer; end; |
type PSHMinfo = ^TSHMinfo; TSHMinfo = record shmmax : longint; shmmin : longint; shmmni : longint; shmseg : longint; shmall : longint; end; |
type PMSG = ^TMSG; TMSG = record msg_next : PMSG; msg_type : Longint; msg_spot : PChar; msg_stime : Longint; msg_ts : Integer; end; |
type PMSQid_ds = ^TMSQid_ds; TMSQid_ds = record msg_perm : TIPC_perm; msg_first : PMsg; msg_last : PMsg; msg_stime : Longint; msg_rtime : Longint; msg_ctime : Longint; wwait : Pointer; rwait : pointer; msg_cbytes : word; msg_qnum : word; msg_qbytes : word; msg_lspid : word; msg_lrpid : word; end; |
PMSGbuf = ^TMSGbuf; TMSGbuf = record mtype : longint; mtext : array[0..0] of char; end; |
Type PMSGinfo = ^TMSGinfo; TMSGinfo = record msgpool : Longint; msgmap : Longint; msgmax : Longint; msgmnb : Longint; msgmni : Longint; msgssz : Longint; msgtql : Longint; msgseg : Word; end; |
Type PSEMid_ds = ^PSEMid_ds; TSEMid_ds = record sem_perm : tipc_perm; sem_otime : longint; sem_ctime : longint; sem_base : pointer; sem_pending : pointer; sem_pending_last : pointer; undo : pointer; sem_nsems : word; end; |
Type PSEMbuf = ^TSEMbuf; TSEMbuf = record sem_num : word; sem_op : integer; sem_flg : integer; end; |
Type PSEMinfo = ^TSEMinfo; TSEMinfo = record semmap : longint; semmni : longint; semmns : longint; semmnu : longint; semmsl : longint; semopm : longint; semume : longint; semusz : longint; semvmx : longint; semaem : longint; end; |
Type PSEMun = ^TSEMun; TSEMun = record case longint of 0 : ( val : longint ); 1 : ( buf : PSEMid_ds ); 2 : ( arr : PWord ); 3 : ( padbuf : PSeminfo ); 4 : ( padpad : pointer ); end; |