svn commit: r345471 - in head/sys: amd64/linux amd64/linux32 compat/linux i386/linux

Dmitry Chagin dchagin at FreeBSD.org
Sun Mar 24 14:50:05 UTC 2019


Author: dchagin
Date: Sun Mar 24 14:50:02 2019
New Revision: 345471
URL: https://svnweb.freebsd.org/changeset/base/345471

Log:
  Update syscall.master to 5.0.
  
  For 32-bit Linuxulator, ipc() syscall was historically
  the entry point for the IPC API. Starting in Linux 4.18, direct
  syscalls are provided for the IPC. Enable it.
  
  MFC after:	1 month

Modified:
  head/sys/amd64/linux/linux_dummy.c
  head/sys/amd64/linux/syscalls.master
  head/sys/amd64/linux32/linux32_dummy.c
  head/sys/amd64/linux32/syscalls.master
  head/sys/compat/linux/linux_ipc.h
  head/sys/i386/linux/linux.h
  head/sys/i386/linux/linux_dummy.c
  head/sys/i386/linux/syscalls.master

Modified: head/sys/amd64/linux/linux_dummy.c
==============================================================================
--- head/sys/amd64/linux/linux_dummy.c	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/amd64/linux/linux_dummy.c	Sun Mar 24 14:50:02 2019	(r345471)
@@ -155,6 +155,16 @@ DUMMY(pwritev2);
 DUMMY(pkey_mprotect);
 DUMMY(pkey_alloc);
 DUMMY(pkey_free);
+/* Linux 4.11: */
+DUMMY(statx);
+/* Linux 4.18: */
+DUMMY(io_pgetevents);
+DUMMY(rseq);
+/* Linux 5.0: */
+DUMMY(pidfd_send_signal);
+DUMMY(io_uring_setup);
+DUMMY(io_uring_enter);
+DUMMY(io_uring_register);
 
 #define DUMMY_XATTR(s)						\
 int								\

Modified: head/sys/amd64/linux/syscalls.master
==============================================================================
--- head/sys/amd64/linux/syscalls.master	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/amd64/linux/syscalls.master	Sun Mar 24 14:50:02 2019	(r345471)
@@ -595,7 +595,21 @@
 330	AUE_NULL	STD	{ int linux_pkey_alloc(l_ulong flags,		\
 				    l_ulong init_val); }
 331	AUE_NULL	STD	{ int linux_pkey_free(l_int pkey); }
+; Linux 4.11:
+332	AUE_NULL	STD	{ int linux_statx(l_int dirfd,			\
+				    const char *pathname, l_uint flags,		\
+				    l_uint mask, void *statxbuf); }
+; Linux 4.18:
+333	AUE_NULL	STD	{ int linux_io_pgetevents(void); }
+334	AUE_NULL	STD	{ int linux_rseq(void); }
+; Linux 5.0:
+335-423	AUE_NULL	UNIMPL	nosys
+424	AUE_NULL	STD	{ int linux_pidfd_send_signal(l_int pidfd,	\
+				    l_int sig, l_siginfo_t *info, l_uint flags); }
+425	AUE_NULL	STD	{ int linux_io_uring_setup(void); }
+426	AUE_NULL	STD	{ int linux_io_uring_enter(void); }
+427	AUE_NULL	STD	{ int linux_io_uring_register(void); }
 
 ; please, keep this line at the end.
-332	AUE_NULL	UNIMPL	nosys
+428	AUE_NULL	UNIMPL	nosys
 ; vim: syntax=off

Modified: head/sys/amd64/linux32/linux32_dummy.c
==============================================================================
--- head/sys/amd64/linux32/linux32_dummy.c	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/amd64/linux32/linux32_dummy.c	Sun Mar 24 14:50:02 2019	(r345471)
@@ -161,6 +161,37 @@ DUMMY(pwritev2);
 DUMMY(pkey_mprotect);
 DUMMY(pkey_alloc);
 DUMMY(pkey_free);
+/* Linux 4.11: */
+DUMMY(statx);
+DUMMY(arch_prctl);
+/* Linux 4.18: */
+DUMMY(io_pgetevents);
+DUMMY(rseq);
+/* Linux 5.0: */
+DUMMY(clock_gettime64);
+DUMMY(clock_settime64);
+DUMMY(clock_adjtime64);
+DUMMY(clock_getres_time64);
+DUMMY(clock_nanosleep_time64);
+DUMMY(timer_gettime64);
+DUMMY(timer_settime64);
+DUMMY(timerfd_gettime64);
+DUMMY(timerfd_settime64);
+DUMMY(utimensat_time64);
+DUMMY(pselect6_time64);
+DUMMY(ppoll_time64);
+DUMMY(io_pgetevents_time64);
+DUMMY(recvmmsg_time64);
+DUMMY(mq_timedsend_time64);
+DUMMY(mq_timedreceive_time64);
+DUMMY(semtimedop_time64);
+DUMMY(rt_sigtimedwait_time64);
+DUMMY(futex_time64);
+DUMMY(sched_rr_get_interval_time64);
+DUMMY(pidfd_send_signal);
+DUMMY(io_uring_setup);
+DUMMY(io_uring_enter);
+DUMMY(io_uring_register);
 
 #define DUMMY_XATTR(s)						\
 int								\

Modified: head/sys/amd64/linux32/syscalls.master
==============================================================================
--- head/sys/amd64/linux32/syscalls.master	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/amd64/linux32/syscalls.master	Sun Mar 24 14:50:02 2019	(r345471)
@@ -686,7 +686,64 @@
 381	AUE_NULL	STD	{ int linux_pkey_alloc(l_ulong flags,		\
 				    l_ulong init_val); }
 382	AUE_NULL	STD	{ int linux_pkey_free(l_int pkey); }
+; Linux 4.11:
+383	AUE_NULL	STD	{ int linux_statx(l_int dirfd,			\
+				    const char *pathname, l_uint flags,		\
+				    l_uint mask, void *statxbuf); }
+384	AUE_NULL	STD	{ int linux_arch_prctl(l_int option,
+				    l_ulong arg2); }
+; Linux 4.18:
+385	AUE_NULL	STD	{ int linux_io_pgetevents(void); }
+386	AUE_NULL	STD	{ int linux_rseq(void); }
+387-392	AUE_NULL	UNIMPL	nosys
+393	AUE_NULL	STD	{ int linux_semget(l_key_t key, l_int nsems,	\
+				    l_int semflg); }
+394	AUE_NULL	STD	{ int linux_semctl(l_int semid, l_int semnum,	\
+				    l_int cmd, union l_semun arg); }
+395	AUE_NULL	STD	{ int linux_shmget(l_key_t key, l_size_t size,	\
+				    l_int shmflg); }
+396	AUE_NULL	STD	{ int linux_shmctl(l_int shmid, l_int cmd,	\
+				    struct l_shmid_ds *buf); }
+397	AUE_NULL	STD	{ int linux_shmat(l_int shmid, char *shmaddr,	\
+				    l_int shmflg); }
+398	AUE_NULL	STD	{ int linux_shmdt(char *shmaddr); }
+399	AUE_NULL	STD	{ int linux_msgget(l_key_t key, l_int msgflg); }
+400	AUE_NULL	STD	{ int linux_msgsnd(l_int msqid, \
+				    struct l_msgbuf *msgp, l_size_t msgsz, \
+				    l_int msgflg); }
+401	AUE_NULL	STD	{ int linux_msgrcv(l_int msqid, \
+				    struct l_msgbuf *msgp, l_size_t msgsz, \
+				    l_long msgtyp, l_int msgflg); }
+402	AUE_NULL	STD	{ int linux_msgctl(l_int msqid, l_int cmd, \
+				    struct l_msqid_ds *buf); }
+; Linux 5.0:
+403	AUE_NULL	STD	{ int linux_clock_gettime64(void); }
+404	AUE_NULL	STD	{ int linux_clock_settime64(void); }
+405	AUE_NULL	STD	{ int linux_clock_adjtime64(void); }
+406	AUE_NULL	STD	{ int linux_clock_getres_time64(void); }
+407	AUE_NULL	STD	{ int linux_clock_nanosleep_time64(void); }
+408	AUE_NULL	STD	{ int linux_timer_gettime64(void); }
+409	AUE_NULL	STD	{ int linux_timer_settime64(void); }
+410	AUE_NULL	STD	{ int linux_timerfd_gettime64(void); }
+411	AUE_NULL	STD	{ int linux_timerfd_settime64(void); }
+412	AUE_NULL	STD	{ int linux_utimensat_time64(void); }
+413	AUE_NULL	STD	{ int linux_pselect6_time64(void); }
+414	AUE_NULL	STD	{ int linux_ppoll_time64(void); }
+415	AUE_NULL	UNIMPL	nosys
+416	AUE_NULL	STD	{ int linux_io_pgetevents_time64(void); }
+417	AUE_NULL	STD	{ int linux_recvmmsg_time64(void); }
+418	AUE_NULL	STD	{ int linux_mq_timedsend_time64(void); }
+419	AUE_NULL	STD	{ int linux_mq_timedreceive_time64(void); }
+420	AUE_NULL	STD	{ int linux_semtimedop_time64(void); }
+421	AUE_NULL	STD	{ int linux_rt_sigtimedwait_time64(void); }
+422	AUE_NULL	STD	{ int linux_futex_time64(void); }
+423	AUE_NULL	STD	{ int linux_sched_rr_get_interval_time64(void); }
+424	AUE_NULL	STD	{ int linux_pidfd_send_signal(l_int pidfd,	\
+				    l_int sig, l_siginfo_t *info, l_uint flags); }
+425	AUE_NULL	STD	{ int linux_io_uring_setup(void); }
+426	AUE_NULL	STD	{ int linux_io_uring_enter(void); }
+427	AUE_NULL	STD	{ int linux_io_uring_register(void); }
 
 ; please, keep this line at the end.
-383	AUE_NULL	UNIMPL	nosys
+428	AUE_NULL	UNIMPL	nosys
 ; vim: syntax=off

Modified: head/sys/compat/linux/linux_ipc.h
==============================================================================
--- head/sys/compat/linux/linux_ipc.h	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/compat/linux/linux_ipc.h	Sun Mar 24 14:50:02 2019	(r345471)
@@ -84,51 +84,6 @@
 
 #if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
 
-struct linux_msgctl_args
-{
-	l_int		msqid;
-	l_int		cmd;
-	struct l_msqid_ds *buf;
-};
-
-struct linux_msgget_args
-{
-	l_key_t		key;
-	l_int		msgflg;
-};
-
-struct linux_msgrcv_args
-{
-	l_int		msqid;
-	struct l_msgbuf *msgp;
-	l_size_t	msgsz;
-	l_long		msgtyp;
-	l_int		msgflg;
-};
-
-struct linux_msgsnd_args
-{
-	l_int		msqid;
-	struct l_msgbuf *msgp;
-	l_size_t	msgsz;
-	l_int		msgflg;
-};
-
-struct linux_semctl_args
-{
-	l_int		semid;
-	l_int		semnum;
-	l_int		cmd;
-	union l_semun	arg;
-};
-
-struct linux_semget_args
-{
-	l_key_t		key;
-	l_int		nsems;
-	l_int		semflg;
-};
-
 struct linux_semop_args
 {
 	l_int		semid;
@@ -136,46 +91,7 @@ struct linux_semop_args
 	l_uint		nsops;
 };
 
-struct linux_shmat_args
-{
-	l_int		shmid;
-	char		*shmaddr;
-	l_int		shmflg;
-};
-
-struct linux_shmctl_args
-{
-	l_int		shmid;
-	l_int		cmd;
-	struct l_shmid_ds *buf;
-};
-
-struct linux_shmdt_args
-{
-	char *shmaddr;
-};
-
-struct linux_shmget_args
-{
-	l_key_t		key;
-	l_size_t	size;
-	l_int		shmflg;
-};
-
-int linux_msgctl(struct thread *, struct linux_msgctl_args *);
-int linux_msgget(struct thread *, struct linux_msgget_args *);
-int linux_msgrcv(struct thread *, struct linux_msgrcv_args *);
-int linux_msgsnd(struct thread *, struct linux_msgsnd_args *);
-
-int linux_semctl(struct thread *, struct linux_semctl_args *);
-int linux_semget(struct thread *, struct linux_semget_args *);
 int linux_semop(struct thread *, struct linux_semop_args *);
-
-int linux_shmat(struct thread *, struct linux_shmat_args *);
-int linux_shmctl(struct thread *, struct linux_shmctl_args *);
-int linux_shmdt(struct thread *, struct linux_shmdt_args *);
-int linux_shmget(struct thread *, struct linux_shmget_args *);
-
 #endif	/* __i386__ || (__amd64__ && COMPAT_LINUX32) */
 
 #endif /* _LINUX_IPC_H_ */

Modified: head/sys/i386/linux/linux.h
==============================================================================
--- head/sys/i386/linux/linux.h	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/i386/linux/linux.h	Sun Mar 24 14:50:02 2019	(r345471)
@@ -448,10 +448,10 @@ extern struct sysentvec linux_sysvec;
 
 union l_semun {
 	l_int		val;
-	struct l_semid_ds	*buf;
+	l_uintptr_t	buf;
 	l_ushort	*array;
-	struct l_seminfo	*__buf;
-	void		*__pad;
+	l_uintptr_t	__buf;
+	l_uintptr_t	__pad;
 };
 
 struct l_sockaddr {

Modified: head/sys/i386/linux/linux_dummy.c
==============================================================================
--- head/sys/i386/linux/linux_dummy.c	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/i386/linux/linux_dummy.c	Sun Mar 24 14:50:02 2019	(r345471)
@@ -157,6 +157,37 @@ DUMMY(pwritev2);
 DUMMY(pkey_mprotect);
 DUMMY(pkey_alloc);
 DUMMY(pkey_free);
+/* Linux 4.11: */
+DUMMY(statx);
+DUMMY(arch_prctl);
+/* Linux 4.18: */
+DUMMY(io_pgetevents);
+DUMMY(rseq);
+/* Linux 5.0: */
+DUMMY(clock_gettime64);
+DUMMY(clock_settime64);
+DUMMY(clock_adjtime64);
+DUMMY(clock_getres_time64);
+DUMMY(clock_nanosleep_time64);
+DUMMY(timer_gettime64);
+DUMMY(timer_settime64);
+DUMMY(timerfd_gettime64);
+DUMMY(timerfd_settime64);
+DUMMY(utimensat_time64);
+DUMMY(pselect6_time64);
+DUMMY(ppoll_time64);
+DUMMY(io_pgetevents_time64);
+DUMMY(recvmmsg_time64);
+DUMMY(mq_timedsend_time64);
+DUMMY(mq_timedreceive_time64);
+DUMMY(semtimedop_time64);
+DUMMY(rt_sigtimedwait_time64);
+DUMMY(futex_time64);
+DUMMY(sched_rr_get_interval_time64);
+DUMMY(pidfd_send_signal);
+DUMMY(io_uring_setup);
+DUMMY(io_uring_enter);
+DUMMY(io_uring_register);
 
 #define DUMMY_XATTR(s)						\
 int								\

Modified: head/sys/i386/linux/syscalls.master
==============================================================================
--- head/sys/i386/linux/syscalls.master	Sun Mar 24 14:46:07 2019	(r345470)
+++ head/sys/i386/linux/syscalls.master	Sun Mar 24 14:50:02 2019	(r345471)
@@ -694,7 +694,64 @@
 381	AUE_NULL	STD	{ int linux_pkey_alloc(l_ulong flags,		\
 				    l_ulong init_val); }
 382	AUE_NULL	STD	{ int linux_pkey_free(l_int pkey); }
+; Linux 4.11:
+383	AUE_NULL	STD	{ int linux_statx(l_int dirfd,			\
+				    const char *pathname, l_uint flags,		\
+				    l_uint mask, void *statxbuf); }
+384	AUE_PRCTL	STD	{ int linux_arch_prctl(l_int option,
+				    l_ulong arg2); }
+; Linux 4.18:
+385	AUE_NULL	STD	{ int linux_io_pgetevents(void); }
+386	AUE_NULL	STD	{ int linux_rseq(void); }
+387-392	AUE_NULL	UNIMPL	nosys
+393	AUE_NULL	STD	{ int linux_semget(l_key_t key, l_int nsems,	\
+				    l_int semflg); }
+394	AUE_NULL	STD	{ int linux_semctl(l_int semid, l_int semnum,	\
+				    l_int cmd, union l_semun arg); }
+395	AUE_NULL	STD	{ int linux_shmget(l_key_t key, l_size_t size,	\
+				    l_int shmflg); }
+396	AUE_NULL	STD	{ int linux_shmctl(l_int shmid, l_int cmd,	\
+				    struct l_shmid_ds *buf); }
+397	AUE_NULL	STD	{ int linux_shmat(l_int shmid, char *shmaddr,	\
+				    l_int shmflg); }
+398	AUE_NULL	STD	{ int linux_shmdt(char *shmaddr); }
+399	AUE_NULL	STD	{ int linux_msgget(l_key_t key, l_int msgflg); }
+400	AUE_NULL	STD	{ int linux_msgsnd(l_int msqid, \
+				    struct l_msgbuf *msgp, l_size_t msgsz, \
+				    l_int msgflg); }
+401	AUE_NULL	STD	{ int linux_msgrcv(l_int msqid, \
+				    struct l_msgbuf *msgp, l_size_t msgsz, \
+				    l_long msgtyp, l_int msgflg); }
+402	AUE_NULL	STD	{ int linux_msgctl(l_int msqid, l_int cmd, \
+				    struct l_msqid_ds *buf); }
+; Linux 5.0:
+403	AUE_NULL	STD	{ int linux_clock_gettime64(void); }
+404	AUE_NULL	STD	{ int linux_clock_settime64(void); }
+405	AUE_NULL	STD	{ int linux_clock_adjtime64(void); }
+406	AUE_NULL	STD	{ int linux_clock_getres_time64(void); }
+407	AUE_NULL	STD	{ int linux_clock_nanosleep_time64(void); }
+408	AUE_NULL	STD	{ int linux_timer_gettime64(void); }
+409	AUE_NULL	STD	{ int linux_timer_settime64(void); }
+410	AUE_NULL	STD	{ int linux_timerfd_gettime64(void); }
+411	AUE_NULL	STD	{ int linux_timerfd_settime64(void); }
+412	AUE_NULL	STD	{ int linux_utimensat_time64(void); }
+413	AUE_NULL	STD	{ int linux_pselect6_time64(void); }
+414	AUE_NULL	STD	{ int linux_ppoll_time64(void); }
+415	AUE_NULL	UNIMPL	nosys
+416	AUE_NULL	STD	{ int linux_io_pgetevents_time64(void); }
+417	AUE_NULL	STD	{ int linux_recvmmsg_time64(void); }
+418	AUE_NULL	STD	{ int linux_mq_timedsend_time64(void); }
+419	AUE_NULL	STD	{ int linux_mq_timedreceive_time64(void); }
+420	AUE_NULL	STD	{ int linux_semtimedop_time64(void); }
+421	AUE_NULL	STD	{ int linux_rt_sigtimedwait_time64(void); }
+422	AUE_NULL	STD	{ int linux_futex_time64(void); }
+423	AUE_NULL	STD	{ int linux_sched_rr_get_interval_time64(void); }
+424	AUE_NULL	STD	{ int linux_pidfd_send_signal(l_int pidfd,	\
+				    l_int sig, l_siginfo_t *info, l_uint flags); }
+425	AUE_NULL	STD	{ int linux_io_uring_setup(void); }
+426	AUE_NULL	STD	{ int linux_io_uring_enter(void); }
+427	AUE_NULL	STD	{ int linux_io_uring_register(void); }
 
 ; please, keep this line at the end.
-383	AUE_NULL	UNIMPL	nosys
+428	AUE_NULL	UNIMPL	nosys
 ; vim: syntax=off


More information about the svn-src-head mailing list