summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2020-02-09 11:53:37 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2020-02-09 11:53:37 +0000
commitf88c67a625b83004cd93f7ef30c0a0d36e881163 (patch)
treed078ea7df75dbe9abc7a2f6db8d99c61bac62b24
parent146fc63fce9b46ab77ba7959cf69429d9bd88d2a (diff)
Notes
-rw-r--r--sys/compat/freebsd32/freebsd32_syscall.h3
-rw-r--r--sys/compat/freebsd32/freebsd32_syscalls.c1
-rw-r--r--sys/compat/freebsd32/freebsd32_sysent.c1
-rw-r--r--sys/compat/freebsd32/freebsd32_systrace_args.c26
-rw-r--r--sys/kern/init_sysent.c1
-rw-r--r--sys/kern/syscalls.c1
-rw-r--r--sys/kern/systrace_args.c26
-rw-r--r--sys/sys/syscall.h3
-rw-r--r--sys/sys/syscall.mk3
-rw-r--r--sys/sys/sysproto.h6
10 files changed, 68 insertions, 3 deletions
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index bcdb1579cb57..6f91a1190a1c 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -499,4 +499,5 @@
#define FREEBSD32_SYS_freebsd32___sysctlbyname 570
#define FREEBSD32_SYS_shm_open2 571
#define FREEBSD32_SYS_shm_rename 572
-#define FREEBSD32_SYS_MAXSYSCALL 573
+#define FREEBSD32_SYS_sigfastblock 573
+#define FREEBSD32_SYS_MAXSYSCALL 574
diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c
index 223c6772829b..deefa2d22630 100644
--- a/sys/compat/freebsd32/freebsd32_syscalls.c
+++ b/sys/compat/freebsd32/freebsd32_syscalls.c
@@ -609,4 +609,5 @@ const char *freebsd32_syscallnames[] = {
"freebsd32___sysctlbyname", /* 570 = freebsd32___sysctlbyname */
"shm_open2", /* 571 = shm_open2 */
"shm_rename", /* 572 = shm_rename */
+ "sigfastblock", /* 573 = sigfastblock */
};
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index 52baae6c02b7..b703c0fa1e3b 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -662,4 +662,5 @@ struct sysent freebsd32_sysent[] = {
{ AS(freebsd32___sysctlbyname_args), (sy_call_t *)freebsd32___sysctlbyname, AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 570 = freebsd32___sysctlbyname */
{ AS(shm_open2_args), (sy_call_t *)sys_shm_open2, AUE_SHMOPEN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 571 = shm_open2 */
{ AS(shm_rename_args), (sy_call_t *)sys_shm_rename, AUE_SHMRENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 572 = shm_rename */
+ { AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */
};
diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c
index 178bbf0a8427..2abc302f3079 100644
--- a/sys/compat/freebsd32/freebsd32_systrace_args.c
+++ b/sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -3355,6 +3355,14 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 3;
break;
}
+ /* sigfastblock */
+ case 573: {
+ struct sigfastblock_args *p = params;
+ iarg[0] = p->cmd; /* int */
+ uarg[1] = (intptr_t) p->ptr; /* uint32_t * */
+ *n_args = 2;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -9041,6 +9049,19 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* sigfastblock */
+ case 573:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "userland uint32_t *";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -10930,6 +10951,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* sigfastblock */
+ case 573:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index b64105fdea34..edb76ee279ae 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -628,4 +628,5 @@ struct sysent sysent[] = {
{ AS(__sysctlbyname_args), (sy_call_t *)sys___sysctlbyname, AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 570 = __sysctlbyname */
{ AS(shm_open2_args), (sy_call_t *)sys_shm_open2, AUE_SHMOPEN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 571 = shm_open2 */
{ AS(shm_rename_args), (sy_call_t *)sys_shm_rename, AUE_SHMRENAME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 572 = shm_rename */
+ { AS(sigfastblock_args), (sy_call_t *)sys_sigfastblock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 573 = sigfastblock */
};
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index 3daa26a41f09..0df4e03756eb 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -579,4 +579,5 @@ const char *syscallnames[] = {
"__sysctlbyname", /* 570 = __sysctlbyname */
"shm_open2", /* 571 = shm_open2 */
"shm_rename", /* 572 = shm_rename */
+ "sigfastblock", /* 573 = sigfastblock */
};
diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c
index 01a9a4e63cbb..346415a69787 100644
--- a/sys/kern/systrace_args.c
+++ b/sys/kern/systrace_args.c
@@ -3347,6 +3347,14 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 3;
break;
}
+ /* sigfastblock */
+ case 573: {
+ struct sigfastblock_args *p = params;
+ iarg[0] = p->cmd; /* int */
+ uarg[1] = (intptr_t) p->ptr; /* uint32_t * */
+ *n_args = 2;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -8946,6 +8954,19 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* sigfastblock */
+ case 573:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "userland uint32_t *";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -10862,6 +10883,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* sigfastblock */
+ case 573:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index bfe648fa0808..5b183036661f 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -508,4 +508,5 @@
#define SYS___sysctlbyname 570
#define SYS_shm_open2 571
#define SYS_shm_rename 572
-#define SYS_MAXSYSCALL 573
+#define SYS_sigfastblock 573
+#define SYS_MAXSYSCALL 574
diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk
index 269010e25e71..c095831023a4 100644
--- a/sys/sys/syscall.mk
+++ b/sys/sys/syscall.mk
@@ -413,4 +413,5 @@ MIASM = \
copy_file_range.o \
__sysctlbyname.o \
shm_open2.o \
- shm_rename.o
+ shm_rename.o \
+ sigfastblock.o
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index 05acc23c5a07..6817ecf6f4ee 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -1819,6 +1819,10 @@ struct shm_rename_args {
char path_to_l_[PADL_(const char *)]; const char * path_to; char path_to_r_[PADR_(const char *)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
};
+struct sigfastblock_args {
+ char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)];
+ char ptr_l_[PADL_(uint32_t *)]; uint32_t * ptr; char ptr_r_[PADR_(uint32_t *)];
+};
int nosys(struct thread *, struct nosys_args *);
void sys_sys_exit(struct thread *, struct sys_exit_args *);
int sys_fork(struct thread *, struct fork_args *);
@@ -2207,6 +2211,7 @@ int sys_copy_file_range(struct thread *, struct copy_file_range_args *);
int sys___sysctlbyname(struct thread *, struct __sysctlbyname_args *);
int sys_shm_open2(struct thread *, struct shm_open2_args *);
int sys_shm_rename(struct thread *, struct shm_rename_args *);
+int sys_sigfastblock(struct thread *, struct sigfastblock_args *);
#ifdef COMPAT_43
@@ -3130,6 +3135,7 @@ int freebsd12_shm_open(struct thread *, struct freebsd12_shm_open_args *);
#define SYS_AUE___sysctlbyname AUE_SYSCTL
#define SYS_AUE_shm_open2 AUE_SHMOPEN
#define SYS_AUE_shm_rename AUE_SHMRENAME
+#define SYS_AUE_sigfastblock AUE_NULL
#undef PAD_
#undef PADL_