diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2004-07-14 23:45:12 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2004-07-14 23:45:12 +0000 |
commit | 1f938370d0925923855d0aa555c61e0021e813d4 (patch) | |
tree | dd1070107bd0640c4efcc4942d08cd1a28e898ea /sys/kern | |
parent | 2936cdf8e0c9bb397150cbee125b4456fee40aab (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.master | 32 |
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 |