System V IPC code from Danny Boulet, chewed on a bit by the NetBSD group
authorDavid Greenman <davidg@Root.COM>
Fri, 21 Jan 1994 09:54:43 +0000 (09:54 +0000)
committerDavid Greenman <davidg@Root.COM>
Fri, 21 Jan 1994 09:54:43 +0000 (09:54 +0000)
and then some more by Jeffery Hsu (who provided this port for FreeBSD).

lib/libc/gen/Makefile.inc
lib/libc/gen/msgctl.c [new file with mode: 0644]
lib/libc/gen/msgget.c [new file with mode: 0644]
lib/libc/gen/msgrcv.c [new file with mode: 0644]
lib/libc/gen/msgsnd.c [new file with mode: 0644]
lib/libc/gen/semconfig.c [new file with mode: 0644]
lib/libc/gen/semctl.c [new file with mode: 0644]
lib/libc/gen/semget.c [new file with mode: 0644]
lib/libc/gen/semop.c [new file with mode: 0644]

index a039b2c..d366a74 100644 (file)
@@ -8,13 +8,15 @@ SRCS+=        alarm.c assert.c clock.c crypt.c ctermid.c ctime.c ctype_.c \
        fnmatch.c frexp.c fstab.c fts.c getcap.c getcwd.c getgrent.c \
        getlogin.c getmntinfo.c getpass.c getpwent.c getsubopt.c getttyent.c \
        getusershell.c glob.c infinity.c initgroups.c insque.c isatty.c \
        fnmatch.c frexp.c fstab.c fts.c getcap.c getcwd.c getgrent.c \
        getlogin.c getmntinfo.c getpass.c getpwent.c getsubopt.c getttyent.c \
        getusershell.c glob.c infinity.c initgroups.c insque.c isatty.c \
-       isctype.c isinf.c mktemp.c nice.c nlist.c pause.c popen.c psignal.c \
-       raise.c setjmperr.c setmode.c setrgid.c setruid.c \
+       isctype.c isinf.c mktemp.c msgctl.c msgget.c msgsnd.c msgrcv.c \
+       nice.c nlist.c pause.c popen.c psignal.c raise.c scandir.c \
+       semconfig.c semctl.c semget.c semop.c \
+       setjmperr.c setmode.c setrgid.c setruid.c \
        shmat.c shmctl.c shmdt.c shmget.c \
        shmat.c shmctl.c shmdt.c shmget.c \
-       siginterrupt.c \
-       scandir.c siglist.c signal.c sigsetops.c sleep.c syslog.c termios.c \
-       time.c times.c timezone.c ttyname.c ttyslot.c ualarm.c unvis.c \
-       usleep.c utime.c valloc.c vis.c wait.c wait3.c waitpid.c
+       siginterrupt.c siglist.c signal.c sigsetops.c sleep.c syslog.c \
+       termios.c time.c times.c timezone.c ttyname.c ttyslot.c \
+       ualarm.c unvis.c usleep.c utime.c valloc.c vis.c \
+       wait.c wait3.c waitpid.c
 
 # gen/regexp sources
 SRCS+= regerror.c regexp.c regsub.c
 
 # gen/regexp sources
 SRCS+= regerror.c regexp.c regsub.c
diff --git a/lib/libc/gen/msgctl.c b/lib/libc/gen/msgctl.c
new file mode 100644 (file)
index 0000000..7b74c51
--- /dev/null
@@ -0,0 +1,15 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+
+#if __STDC__
+int msgctl(int msqid, int cmd, struct msqid_ds *buf)
+#else
+int msgctl(msqid,cmd,buf)
+       int msqid;
+       int cmd;
+       caddr_t buf;
+#endif
+{
+       return (msgsys(0, msqid, cmd, buf));
+}
diff --git a/lib/libc/gen/msgget.c b/lib/libc/gen/msgget.c
new file mode 100644 (file)
index 0000000..3e146b0
--- /dev/null
@@ -0,0 +1,14 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+
+#if __STDC__
+int msgget(key_t key, int msgflg)
+#else
+int msgget(key,msgflg)
+       key_t key;
+       int msgflg;
+#endif
+{
+       return (msgsys(1, key, msgflg));
+}
diff --git a/lib/libc/gen/msgrcv.c b/lib/libc/gen/msgrcv.c
new file mode 100644 (file)
index 0000000..5c1e387
--- /dev/null
@@ -0,0 +1,17 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+
+#if __STDC__
+int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)
+#else
+int msgrcv(msqid, msgp, msgsz, msgtyp, msgflg)
+       int msqid;
+       void *msgp;
+       size_t msgsz;
+       long msgtyp;
+       int msgflg;
+#endif
+{
+       return (msgsys(3, msqid, msgp, msgsz, msgtyp, msgflg));
+}
diff --git a/lib/libc/gen/msgsnd.c b/lib/libc/gen/msgsnd.c
new file mode 100644 (file)
index 0000000..a620915
--- /dev/null
@@ -0,0 +1,16 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+
+#if __STDC__
+int msgsnd(int msqid, void *msgp, size_t msgsz, int msgflg)
+#else
+int msgsnd(msqid, msgp, msgsz, msgflg)
+       int msqid;
+       void *msgp;
+       size_t msgsz;
+       int msgflg;
+#endif
+{
+       return (msgsys(2, msqid, msgp, msgsz, msgflg));
+}
diff --git a/lib/libc/gen/semconfig.c b/lib/libc/gen/semconfig.c
new file mode 100644 (file)
index 0000000..66fbb2d
--- /dev/null
@@ -0,0 +1,13 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
+
+#if __STDC__
+int semconfig(int cmd, int p1, int p2, int p3)
+#else
+int semctl(cmd, p1, p2, p3)
+       int cmd, p1, p2, p3;
+#endif
+{
+       return (semsys(3, cmd, p1, p2, p3));
+}
diff --git a/lib/libc/gen/semctl.c b/lib/libc/gen/semctl.c
new file mode 100644 (file)
index 0000000..313a1db
--- /dev/null
@@ -0,0 +1,15 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
+
+#if __STDC__
+int semctl(int semid, int semnum, int cmd, union semun semun)
+#else
+int semctl(semid, int semnum, cmd, semun)
+       int semid, semnum;
+       int cmd;
+       union semun semun;
+#endif
+{
+       return (semsys(0, semid, semnum, cmd, &semun));
+}
diff --git a/lib/libc/gen/semget.c b/lib/libc/gen/semget.c
new file mode 100644 (file)
index 0000000..81c6a86
--- /dev/null
@@ -0,0 +1,15 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
+
+#if __STDC__
+int semget(key_t key, int nsems, int semflg)
+#else
+int semget(key, nsems, semflg)
+       key_t key;
+       int nsems;
+       int semflg;
+#endif
+{
+       return (semsys(1, key, nsems, semflg));
+}
diff --git a/lib/libc/gen/semop.c b/lib/libc/gen/semop.c
new file mode 100644 (file)
index 0000000..0b97c6a
--- /dev/null
@@ -0,0 +1,15 @@
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
+
+#if __STDC__
+int semop(int semid, struct sembuf *sops, unsigned nsops)
+#else
+int semop(semid, sops, nsops)
+       int semid;
+       struct sembuf *sops;
+       unsigned nsops;
+#endif
+{
+       return (semsys(2, semid, sops, nsops, 0));
+}