summaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2004-07-14 23:45:12 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2004-07-14 23:45:12 +0000
commit1f938370d0925923855d0aa555c61e0021e813d4 (patch)
treedd1070107bd0640c4efcc4942d08cd1a28e898ea /sys/kern
parent2936cdf8e0c9bb397150cbee125b4456fee40aab (diff)
Because mode_t is used in struct ipc_perm we need new versions of
the msgctl, semctl, and shmctl system calls. This moves the old versions to COMPAT_35 and adds new ones. WARNING: While this fixes things like shared memory in the X server for old (pre-mode_t change) binaries, it will break binaries that use shared memory built between the time of the mode_t change (Jul 13th) and now. If you rebuild X during that interval you will need to do it again after updating the rest of userland.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/syscalls.master32
1 files changed, 25 insertions, 7 deletions
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index 4b47fa325b7..2c8052a6b56 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -1,4 +1,4 @@
-; $OpenBSD: syscalls.master,v 1.73 2004/07/14 18:00:48 millert Exp $
+; $OpenBSD: syscalls.master,v 1.74 2004/07/14 23:45:11 millert Exp $
; $NetBSD: syscalls.master,v 1.32 1996/04/23 10:24:21 mycroft Exp $
; @(#)syscalls.master 8.2 (Berkeley) 1/13/94
@@ -497,20 +497,20 @@
255 STD { pid_t sys_getsid(pid_t pid); }
256 STD { int sys_msync(void *addr, size_t len, int flags); }
#ifdef SYSVSEM
-257 STD { int sys___semctl(int semid, int semnum, int cmd, \
- union semun *arg); }
+257 COMPAT_35 { int sys___semctl(int semid, int semnum, int cmd, \
+ union semun *arg); } semctl35
#else
257 UNIMPL
#endif
#ifdef SYSVSHM
-258 STD { int sys_shmctl(int shmid, int cmd, \
- struct shmid_ds *buf); }
+258 COMPAT_35 { int sys_shmctl(int shmid, int cmd, \
+ struct shmid_ds35 *buf); } shmctl35
#else
258 UNIMPL
#endif
#ifdef SYSVMSG
-259 STD { int sys_msgctl(int msqid, int cmd, \
- struct msqid_ds *buf); }
+259 COMPAT_35 { int sys_msgctl(int msqid, int cmd, \
+ struct msqid_ds35 *buf); } msgctl35
#else
259 UNIMPL
#endif
@@ -598,3 +598,21 @@
293 STD { int sys_lstat(const char *path, struct stat *ub); }
294 STD { int sys_fhstat(const fhandle_t *fhp, \
struct stat *sb); }
+#ifdef SYSVSEM
+295 STD { int sys___semctl(int semid, int semnum, int cmd, \
+ union semun *arg); }
+#else
+295 UNIMPL
+#endif
+#ifdef SYSVSHM
+296 STD { int sys_shmctl(int shmid, int cmd, \
+ struct shmid_ds *buf); }
+#else
+296 UNIMPL
+#endif
+#ifdef SYSVMSG
+297 STD { int sys_msgctl(int msqid, int cmd, \
+ struct msqid_ds *buf); }
+#else
+297 UNIMPL
+#endif