ipc: rename old-style shmctl/semctl/msgctl syscalls
The behavior of these system calls is slightly different between architectures, as determined by the CONFIG_ARCH_WANT_IPC_PARSE_VERSION symbol. Most architectures that implement the split IPC syscalls don't set that symbol and only get the modern version, but alpha, arm, microblaze, mips-n32, mips-n64 and xtensa expect the caller to pass the IPC_64 flag. For the architectures that so far only implement sys_ipc(), i.e. m68k, mips-o32, powerpc, s390, sh, sparc, and x86-32, we want the new behavior when adding the split syscalls, so we need to distinguish between the two groups of architectures. The method I picked for this distinction is to have a separate system call entry point: sys_old_*ctl() now uses ipc_parse_version, while sys_*ctl() does not. The system call tables of the five architectures are changed accordingly. As an additional benefit, we no longer need the configuration specific definition for ipc_parse_version(), it always does the same thing now, but simply won't get called on architectures with the modern interface. A small downside is that on architectures that do set ARCH_WANT_IPC_PARSE_VERSION, we now have an extra set of entry points that are never called. They only add a few bytes of bloat, so it seems better to keep them compared to adding yet another Kconfig symbol. I considered adding new syscall numbers for the IPC_64 variants for consistency, but decided against that for now. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
27 n32 madvise sys_madvise
|
||||
28 n32 shmget sys_shmget
|
||||
29 n32 shmat sys_shmat
|
||||
30 n32 shmctl compat_sys_shmctl
|
||||
30 n32 shmctl compat_sys_old_shmctl
|
||||
31 n32 dup sys_dup
|
||||
32 n32 dup2 sys_dup2
|
||||
33 n32 pause sys_pause
|
||||
@@ -71,12 +71,12 @@
|
||||
61 n32 uname sys_newuname
|
||||
62 n32 semget sys_semget
|
||||
63 n32 semop sys_semop
|
||||
64 n32 semctl compat_sys_semctl
|
||||
64 n32 semctl compat_sys_old_semctl
|
||||
65 n32 shmdt sys_shmdt
|
||||
66 n32 msgget sys_msgget
|
||||
67 n32 msgsnd compat_sys_msgsnd
|
||||
68 n32 msgrcv compat_sys_msgrcv
|
||||
69 n32 msgctl compat_sys_msgctl
|
||||
69 n32 msgctl compat_sys_old_msgctl
|
||||
70 n32 fcntl compat_sys_fcntl
|
||||
71 n32 flock sys_flock
|
||||
72 n32 fsync sys_fsync
|
||||
|
@@ -37,7 +37,7 @@
|
||||
27 n64 madvise sys_madvise
|
||||
28 n64 shmget sys_shmget
|
||||
29 n64 shmat sys_shmat
|
||||
30 n64 shmctl sys_shmctl
|
||||
30 n64 shmctl sys_old_shmctl
|
||||
31 n64 dup sys_dup
|
||||
32 n64 dup2 sys_dup2
|
||||
33 n64 pause sys_pause
|
||||
@@ -71,12 +71,12 @@
|
||||
61 n64 uname sys_newuname
|
||||
62 n64 semget sys_semget
|
||||
63 n64 semop sys_semop
|
||||
64 n64 semctl sys_semctl
|
||||
64 n64 semctl sys_old_semctl
|
||||
65 n64 shmdt sys_shmdt
|
||||
66 n64 msgget sys_msgget
|
||||
67 n64 msgsnd sys_msgsnd
|
||||
68 n64 msgrcv sys_msgrcv
|
||||
69 n64 msgctl sys_msgctl
|
||||
69 n64 msgctl sys_old_msgctl
|
||||
70 n64 fcntl sys_fcntl
|
||||
71 n64 flock sys_flock
|
||||
72 n64 fsync sys_fsync
|
||||
|
Reference in New Issue
Block a user