aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2019-03-24 14:50:02 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2019-03-24 14:50:02 +0000
commitf730d606d5f9316f4091e793936694ca78a36fc4 (patch)
treecd86c8527da85aa05a7b4cc12d4ea2e99a92c285 /sys
parentd9be8b39a5c42436fda57ab2abf52e53448d8bd5 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/linux/linux_dummy.c10
-rw-r--r--sys/amd64/linux/syscalls.master16
-rw-r--r--sys/amd64/linux32/linux32_dummy.c31
-rw-r--r--sys/amd64/linux32/syscalls.master59
-rw-r--r--sys/compat/linux/linux_ipc.h84
-rw-r--r--sys/i386/linux/linux.h6
-rw-r--r--sys/i386/linux/linux_dummy.c31
-rw-r--r--sys/i386/linux/syscalls.master59
8 files changed, 206 insertions, 90 deletions
diff --git a/sys/amd64/linux/linux_dummy.c b/sys/amd64/linux/linux_dummy.c
index b3af774bc58b7..56c20bb26fece 100644
--- a/sys/amd64/linux/linux_dummy.c
+++ b/sys/amd64/linux/linux_dummy.c
@@ -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 \
diff --git a/sys/amd64/linux/syscalls.master b/sys/amd64/linux/syscalls.master
index 7e9681e86303e..f35d3f0461e62 100644
--- a/sys/amd64/linux/syscalls.master
+++ b/sys/amd64/linux/syscalls.master
@@ -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
diff --git a/sys/amd64/linux32/linux32_dummy.c b/sys/amd64/linux32/linux32_dummy.c
index 66f665076ff23..9de0c99a3fcee 100644
--- a/sys/amd64/linux32/linux32_dummy.c
+++ b/sys/amd64/linux32/linux32_dummy.c
@@ -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 \
diff --git a/sys/amd64/linux32/syscalls.master b/sys/amd64/linux32/syscalls.master
index a21440bd53596..a0b1adbe6a2ed 100644
--- a/sys/amd64/linux32/syscalls.master
+++ b/sys/amd64/linux32/syscalls.master
@@ -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
diff --git a/sys/compat/linux/linux_ipc.h b/sys/compat/linux/linux_ipc.h
index fb6cd9f617539..b1bd3fffa4d63 100644
--- a/sys/compat/linux/linux_ipc.h
+++ b/sys/compat/linux/linux_ipc.h
@@ -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_ */
diff --git a/sys/i386/linux/linux.h b/sys/i386/linux/linux.h
index 1c0246b580006..efd6d704fbb73 100644
--- a/sys/i386/linux/linux.h
+++ b/sys/i386/linux/linux.h
@@ -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 {
diff --git a/sys/i386/linux/linux_dummy.c b/sys/i386/linux/linux_dummy.c
index a38a4a421526f..31212de7fab5a 100644
--- a/sys/i386/linux/linux_dummy.c
+++ b/sys/i386/linux/linux_dummy.c
@@ -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 \
diff --git a/sys/i386/linux/syscalls.master b/sys/i386/linux/syscalls.master
index f51f3d807a99f..c43b5bae22c72 100644
--- a/sys/i386/linux/syscalls.master
+++ b/sys/i386/linux/syscalls.master
@@ -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