Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d6040d4 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

arch: add split IPC system calls where needed



The IPC system call handling is highly inconsistent across architectures,
some use sys_ipc, some use separate calls, and some use both.  We also
have some architectures that require passing IPC_64 in the flags, and
others that set it implicitly.

For the addition of a y2038 safe semtimedop() system call, I chose to only
support the separate entry points, but that requires first supporting
the regular ones with their own syscall numbers.

The IPC_64 is now implied by the new semctl/shmctl/msgctl system
calls even on the architectures that require passing it with the ipc()
multiplexer.

I'm not adding the new semtimedop() or semop() on 32-bit architectures,
those will get implemented using the new semtimedop_time64() version
that gets added along with the other time64 calls.
Three 64-bit architectures (powerpc, s390 and sparc) get semtimedop().

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Acked-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent 275f2214
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -388,3 +388,14 @@
378	common	pwritev2			sys_pwritev2
379	common	statx				sys_statx
380	common	seccomp				sys_seccomp
# room for arch specific calls
393	common	semget				sys_semget
394	common	semctl				sys_semctl
395	common	shmget				sys_shmget
396	common	shmctl				sys_shmctl
397	common	shmat				sys_shmat
398	common	shmdt				sys_shmdt
399	common	msgget				sys_msgget
400	common	msgsnd				sys_msgsnd
401	common	msgrcv				sys_msgrcv
402	common	msgctl				sys_msgctl
+11 −0
Original line number Diff line number Diff line
@@ -380,3 +380,14 @@
366	o32	statx				sys_statx
367	o32	rseq				sys_rseq
368	o32	io_pgetevents			sys_io_pgetevents		compat_sys_io_pgetevents
# room for arch specific calls
393	o32	semget				sys_semget
394	o32	semctl				sys_semctl			compat_sys_semctl
395	o32	shmget				sys_shmget
396	o32	shmctl				sys_shmctl			compat_sys_shmctl
397	o32	shmat				sys_shmat			compat_sys_shmat
398	o32	shmdt				sys_shmdt
399	o32	msgget				sys_msgget
400	o32	msgsnd				sys_msgsnd			compat_sys_msgsnd
401	o32	msgrcv				sys_msgrcv			compat_sys_msgrcv
402	o32	msgctl				sys_msgctl			compat_sys_msgctl
+13 −0
Original line number Diff line number Diff line
@@ -414,6 +414,7 @@
363	spu	switch_endian			sys_ni_syscall
364	common	userfaultfd			sys_userfaultfd
365	common	membarrier			sys_membarrier
# 366-377 originally left for IPC, now unused
378	nospu	mlock2				sys_mlock2
379	nospu	copy_file_range			sys_copy_file_range
380	common	preadv2				sys_preadv2			compat_sys_preadv2
@@ -425,3 +426,15 @@
386	nospu	pkey_mprotect			sys_pkey_mprotect
387	nospu	rseq				sys_rseq
388	nospu	io_pgetevents			sys_io_pgetevents		compat_sys_io_pgetevents
# room for arch specific syscalls
392	64	semtimedop			sys_semtimedop
393	common	semget				sys_semget
394	common	semctl				sys_semctl			compat_sys_semctl
395	common	shmget				sys_shmget
396	common	shmctl				sys_shmctl			compat_sys_shmctl
397	common	shmat				sys_shmat			compat_sys_shmat
398	common	shmdt				sys_shmdt
399	common	msgget				sys_msgget
400	common	msgsnd				sys_msgsnd			compat_sys_msgsnd
401	common	msgrcv				sys_msgrcv			compat_sys_msgrcv
402	common	msgctl				sys_msgctl			compat_sys_msgctl
+12 −0
Original line number Diff line number Diff line
@@ -391,3 +391,15 @@
381  common	kexec_file_load		sys_kexec_file_load		sys_kexec_file_load
382  common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
383  common	rseq			sys_rseq			sys_rseq
# room for arch specific syscalls
392	64	semtimedop		sys_semtimedop			-
393  common	semget			sys_semget			sys_semget
394  common	semctl			sys_semctl			compat_sys_semctl
395  common	shmget			sys_shmget			sys_shmget
396  common	shmctl			sys_shmctl			compat_sys_shmctl
397  common	shmat			sys_shmat			compat_sys_shmat
398  common	shmdt			sys_shmdt 			sys_shmdt
399  common	msgget			sys_msgget			sys_msgget
400  common	msgsnd			sys_msgsnd			compat_sys_msgsnd
401  common	msgrcv			sys_msgrcv			compat_sys_msgrcv
402  common	msgctl			sys_msgctl			compat_sys_msgctl
+11 −0
Original line number Diff line number Diff line
@@ -391,3 +391,14 @@
381	common	preadv2				sys_preadv2
382	common	pwritev2			sys_pwritev2
383	common	statx				sys_statx
# room for arch specific syscalls
393	common	semget				sys_semget
394	common	semctl				sys_semctl
395	common	shmget				sys_shmget
396	common	shmctl				sys_shmctl
397	common	shmat				sys_shmat
398	common	shmdt				sys_shmdt
399	common	msgget				sys_msgget
400	common	msgsnd				sys_msgsnd
401	common	msgrcv				sys_msgrcv
402	common	msgctl				sys_msgctl
Loading