aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/compat/freebsd32/freebsd32_proto.h10
-rw-r--r--sys/compat/freebsd32/freebsd32_syscall.h2
-rw-r--r--sys/compat/freebsd32/freebsd32_syscalls.c4
-rw-r--r--sys/compat/freebsd32/freebsd32_sysent.c4
-rw-r--r--sys/kern/init_sysent.c4
-rw-r--r--sys/kern/syscalls.c4
-rw-r--r--sys/sys/syscall.h2
-rw-r--r--sys/sys/syscall.mk2
-rw-r--r--sys/sys/sysproto.h10
9 files changed, 34 insertions, 8 deletions
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h
index 14a2fe794c94..d7d4d4fec5ff 100644
--- a/sys/compat/freebsd32/freebsd32_proto.h
+++ b/sys/compat/freebsd32/freebsd32_proto.h
@@ -1193,6 +1193,12 @@ int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_
#if !defined(PAD64_REQUIRED) && !defined(__amd64__)
#define PAD64_REQUIRED
#endif
+struct freebsd10_freebsd32_umtx_lock_args {
+ char umtx_l_[PADL_(struct umtx *)]; struct umtx * umtx; char umtx_r_[PADR_(struct umtx *)];
+};
+struct freebsd10_freebsd32_umtx_unlock_args {
+ char umtx_l_[PADL_(struct umtx *)]; struct umtx * umtx; char umtx_r_[PADR_(struct umtx *)];
+};
#ifdef PAD64_REQUIRED
#else
#endif
@@ -1209,6 +1215,8 @@ int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_
#else
#endif
int freebsd10_freebsd32_pipe(struct thread *, struct freebsd10_freebsd32_pipe_args *);
+int freebsd10_freebsd32_umtx_lock(struct thread *, struct freebsd10_freebsd32_umtx_lock_args *);
+int freebsd10_freebsd32_umtx_unlock(struct thread *, struct freebsd10_freebsd32_umtx_unlock_args *);
#endif /* COMPAT_FREEBSD10 */
@@ -1414,6 +1422,8 @@ int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fsta
#define FREEBSD32_SYS_AUE_freebsd32_getcontext AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_setcontext AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_swapcontext AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd10_freebsd32_umtx_lock AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd10_freebsd32_umtx_unlock AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_ksem_timedwait AUE_SEMWAIT
#define FREEBSD32_SYS_AUE_freebsd32_thr_suspend AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32__umtx_op AUE_NULL
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index eea7e2f56968..c6ca12448ad2 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -356,6 +356,8 @@
#define FREEBSD32_SYS_thr_exit 431
#define FREEBSD32_SYS_thr_self 432
#define FREEBSD32_SYS_thr_kill 433
+#define FREEBSD32_SYS_freebsd10_freebsd32_umtx_lock 434
+#define FREEBSD32_SYS_freebsd10_freebsd32_umtx_unlock 435
#define FREEBSD32_SYS_jail_attach 436
#define FREEBSD32_SYS_extattr_list_fd 437
#define FREEBSD32_SYS_extattr_list_file 438
diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c
index 0311882f02d0..4a79f2efdaa4 100644
--- a/sys/compat/freebsd32/freebsd32_syscalls.c
+++ b/sys/compat/freebsd32/freebsd32_syscalls.c
@@ -443,8 +443,8 @@ const char *freebsd32_syscallnames[] = {
"thr_exit", /* 431 = thr_exit */
"thr_self", /* 432 = thr_self */
"thr_kill", /* 433 = thr_kill */
- "#434", /* 434 = nosys */
- "#435", /* 435 = nosys */
+ "compat10.freebsd32_umtx_lock", /* 434 = freebsd10 freebsd32_umtx_lock */
+ "compat10.freebsd32_umtx_unlock", /* 435 = freebsd10 freebsd32_umtx_unlock */
"jail_attach", /* 436 = jail_attach */
"extattr_list_fd", /* 437 = extattr_list_fd */
"extattr_list_file", /* 438 = extattr_list_file */
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index bf9356fc1735..98b43274e9d8 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -496,8 +496,8 @@ struct sysent freebsd32_sysent[] = {
{ .sy_narg = AS(thr_exit_args), .sy_call = (sy_call_t *)sys_thr_exit, .sy_auevent = AUE_THR_EXIT, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 431 = thr_exit */
{ .sy_narg = AS(thr_self_args), .sy_call = (sy_call_t *)sys_thr_self, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 432 = thr_self */
{ .sy_narg = AS(thr_kill_args), .sy_call = (sy_call_t *)sys_thr_kill, .sy_auevent = AUE_THR_KILL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 433 = thr_kill */
- { .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 434 = nosys */
- { .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 435 = nosys */
+ { compat10(AS(freebsd10_freebsd32_umtx_lock_args),freebsd32_umtx_lock), .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 434 = freebsd10 freebsd32_umtx_lock */
+ { compat10(AS(freebsd10_freebsd32_umtx_unlock_args),freebsd32_umtx_unlock), .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 435 = freebsd10 freebsd32_umtx_unlock */
{ .sy_narg = AS(jail_attach_args), .sy_call = (sy_call_t *)sys_jail_attach, .sy_auevent = AUE_JAIL_ATTACH, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 436 = jail_attach */
{ .sy_narg = AS(extattr_list_fd_args), .sy_call = (sy_call_t *)sys_extattr_list_fd, .sy_auevent = AUE_EXTATTR_LIST_FD, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 437 = extattr_list_fd */
{ .sy_narg = AS(extattr_list_file_args), .sy_call = (sy_call_t *)sys_extattr_list_file, .sy_auevent = AUE_EXTATTR_LIST_FILE, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 438 = extattr_list_file */
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index 21377d961a98..bc5beb83cf3f 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -489,8 +489,8 @@ struct sysent sysent[] = {
{ .sy_narg = AS(thr_exit_args), .sy_call = (sy_call_t *)sys_thr_exit, .sy_auevent = AUE_THR_EXIT, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 431 = thr_exit */
{ .sy_narg = AS(thr_self_args), .sy_call = (sy_call_t *)sys_thr_self, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 432 = thr_self */
{ .sy_narg = AS(thr_kill_args), .sy_call = (sy_call_t *)sys_thr_kill, .sy_auevent = AUE_THR_KILL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 433 = thr_kill */
- { .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 434 = reserved for local use */
- { .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 435 = reserved for local use */
+ { compat10(AS(freebsd10__umtx_lock_args),_umtx_lock), .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 434 = freebsd10 _umtx_lock */
+ { compat10(AS(freebsd10__umtx_unlock_args),_umtx_unlock), .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 435 = freebsd10 _umtx_unlock */
{ .sy_narg = AS(jail_attach_args), .sy_call = (sy_call_t *)sys_jail_attach, .sy_auevent = AUE_JAIL_ATTACH, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 436 = jail_attach */
{ .sy_narg = AS(extattr_list_fd_args), .sy_call = (sy_call_t *)sys_extattr_list_fd, .sy_auevent = AUE_EXTATTR_LIST_FD, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 437 = extattr_list_fd */
{ .sy_narg = AS(extattr_list_file_args), .sy_call = (sy_call_t *)sys_extattr_list_file, .sy_auevent = AUE_EXTATTR_LIST_FILE, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 438 = extattr_list_file */
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index f75e4aaea790..190c82dd4e5e 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -440,8 +440,8 @@ const char *syscallnames[] = {
"thr_exit", /* 431 = thr_exit */
"thr_self", /* 432 = thr_self */
"thr_kill", /* 433 = thr_kill */
- "#434", /* 434 = reserved for local use */
- "#435", /* 435 = reserved for local use */
+ "compat10._umtx_lock", /* 434 = freebsd10 _umtx_lock */
+ "compat10._umtx_unlock", /* 435 = freebsd10 _umtx_unlock */
"jail_attach", /* 436 = jail_attach */
"extattr_list_fd", /* 437 = extattr_list_fd */
"extattr_list_file", /* 438 = extattr_list_file */
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index 3d2db9563e35..950055c9559e 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -376,6 +376,8 @@
#define SYS_thr_exit 431
#define SYS_thr_self 432
#define SYS_thr_kill 433
+#define SYS_freebsd10__umtx_lock 434
+#define SYS_freebsd10__umtx_unlock 435
#define SYS_jail_attach 436
#define SYS_extattr_list_fd 437
#define SYS_extattr_list_file 438
diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk
index 4c3e04ebd0f7..e007d2c81e61 100644
--- a/sys/sys/syscall.mk
+++ b/sys/sys/syscall.mk
@@ -286,6 +286,8 @@ MIASM = \
thr_exit.o \
thr_self.o \
thr_kill.o \
+ freebsd10__umtx_lock.o \
+ freebsd10__umtx_unlock.o \
jail_attach.o \
extattr_list_fd.o \
extattr_list_file.o \
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index 83b74f53df5e..f17b1951f559 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -2573,7 +2573,15 @@ int freebsd7_shmctl(struct thread *, struct freebsd7_shmctl_args *);
#ifdef COMPAT_FREEBSD10
+struct freebsd10__umtx_lock_args {
+ char umtx_l_[PADL_(struct umtx *)]; struct umtx * umtx; char umtx_r_[PADR_(struct umtx *)];
+};
+struct freebsd10__umtx_unlock_args {
+ char umtx_l_[PADL_(struct umtx *)]; struct umtx * umtx; char umtx_r_[PADR_(struct umtx *)];
+};
int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
+int freebsd10__umtx_lock(struct thread *, struct freebsd10__umtx_lock_args *);
+int freebsd10__umtx_unlock(struct thread *, struct freebsd10__umtx_unlock_args *);
#endif /* COMPAT_FREEBSD10 */
@@ -3040,6 +3048,8 @@ int freebsd12_closefrom(struct thread *, struct freebsd12_closefrom_args *);
#define SYS_AUE_thr_exit AUE_THR_EXIT
#define SYS_AUE_thr_self AUE_NULL
#define SYS_AUE_thr_kill AUE_THR_KILL
+#define SYS_AUE_freebsd10__umtx_lock AUE_NULL
+#define SYS_AUE_freebsd10__umtx_unlock AUE_NULL
#define SYS_AUE_jail_attach AUE_JAIL_ATTACH
#define SYS_AUE_extattr_list_fd AUE_EXTATTR_LIST_FD
#define SYS_AUE_extattr_list_file AUE_EXTATTR_LIST_FILE