1{
2    This file is part of the Free Pascal run time library.
3    Copyright (c) 1999-2000 by Marco van de Voort
4    member of the Free Pascal development team
5
6    CDecl calls for ipc unit
7
8    See the file COPYING.FPC, included in this distribution,
9    for details about the copyright.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
15 **********************************************************************}
16
17
18function cshmget(key:key_t;size:size_t;shmflg:cint):cint; cdecl; external;
19Function cshmat (shmid:cint; shmaddr:pointer; shmflg:cint):pointer; cdecl;external;
20Function cshmdt (shmaddr:pointer):cint;  cdecl; external;
21Function cshmctl(shmid:cint; cmd:cint; buf: pshmid_ds): cint; cdecl; external;
22Function csemget(key:Tkey; nsems:cint; semflg:cint): cint;  cdecl; external;
23Function csemop(semid:cint; sops: psembuf; nsops: cuint): cint;  cdecl; external;
24Function csemctl(semid:cint; semnum:cint; cmd:cint; var arg: tsemun): cint;  cdecl; external;
25Function cmsgget(key: TKey; msgflg:cint):cint;  cdecl; external;
26Function cmsgsnd(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgflg:cint): cint;  cdecl; external;
27Function cmsgrcv(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgtyp:cint; msgflg:cint):cint;  cdecl; external;
28Function cmsgctl(msqid:cint; cmd: cint; buf: PMSQid_ds): cint;  cdecl; external;
29
30function cftok(path:Pchar; id:cint):key_t; cdecl; external;
31
32function ftok(path:Pchar; id:cint):key_t;
33
34var st:stat;
35
36begin
37  ftok:=cftok(path,id);
38end;
39
40function shmget(key:key_t;size:size_t;flag:cint):cint;
41begin
42  shmget:=cshmget(key, size, flag);
43end;
44
45Function shmat (shmid:cint; shmaddr:pointer; shmflg:cint):pointer;
46begin
47  shmat:=cshmat(shmid, shmaddr, shmflg);
48end;
49
50Function shmdt (shmaddr:pointer):cint;
51
52begin
53  shmdt:=cshmdt(shmaddr);
54end;
55
56Function shmctl(shmid:cint; cmd:cint; buf: pshmid_ds): cint;
57
58begin
59  shmctl:= cshmctl(shmid, cmd, buf);
60end;
61
62Function semget(key:Tkey; nsems:cint; semflg:cint): cint;
63begin
64  semget:=csemget(key, nsems, semflg);
65end;
66
67Function semop(semid:cint; sops: psembuf; nsops: cuint): cint;
68begin
69  semop:=csemop(semid, sops, nsops);
70end;
71
72Function semctl(semid:cint; semnum:cint; cmd:cint; var arg: tsemun): cint;
73begin
74  semctl:=csemctl(semid, semnum, cmd, arg);
75end;
76
77Function msgget(key: TKey; msgflg:cint):cint;
78begin
79  msgget:=cmsgget(key, msgflg);
80end;
81
82Function msgsnd(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgflg:cint): cint;
83begin
84  msgsnd:=cmsgsnd(msqid, msgp, msgsz, msgflg);
85end;
86
87Function msgrcv(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgtyp:cint; msgflg:cint):cint;
88begin
89  msgrcv:=cmsgrcv(msqid, msgp, msgsz, msgtyp, msgflg);
90end;
91
92Function msgctl(msqid:cint; cmd: cint; buf: PMSQid_ds): cint;
93begin
94 msgctl:=cmsgctl( msqid, cmd, buf);
95end;
96
97