aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/compat/freebsd32/freebsd32_proto.h30
-rw-r--r--sys/compat/freebsd32/freebsd32_syscall.h5
-rw-r--r--sys/compat/freebsd32/freebsd32_syscalls.c3
-rw-r--r--sys/compat/freebsd32/freebsd32_sysent.c3
-rw-r--r--sys/compat/freebsd32/freebsd32_systrace_args.c84
-rw-r--r--sys/kern/init_sysent.c3
-rw-r--r--sys/kern/syscalls.c3
-rw-r--r--sys/kern/systrace_args.c84
-rw-r--r--sys/sys/syscall.h5
-rw-r--r--sys/sys/syscall.mk5
-rw-r--r--sys/sys/sysproto.h30
11 files changed, 141 insertions, 114 deletions
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h
index c133ae4919ff..9710e5735252 100644
--- a/sys/compat/freebsd32/freebsd32_proto.h
+++ b/sys/compat/freebsd32/freebsd32_proto.h
@@ -294,14 +294,6 @@ struct freebsd32_aio_waitcomplete_args {
char aiocbp_l_[PADL_(struct aiocb32 **)]; struct aiocb32 ** aiocbp; char aiocbp_r_[PADR_(struct aiocb32 **)];
char timeout_l_[PADL_(struct timespec32 *)]; struct timespec32 * timeout; char timeout_r_[PADR_(struct timespec32 *)];
};
-struct freebsd32_kevent_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char changelist_l_[PADL_(const struct kevent32 *)]; const struct kevent32 * changelist; char changelist_r_[PADR_(const struct kevent32 *)];
- char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
- char eventlist_l_[PADL_(struct kevent32 *)]; struct kevent32 * eventlist; char eventlist_r_[PADR_(struct kevent32 *)];
- char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
- char timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * timeout; char timeout_r_[PADR_(const struct timespec32 *)];
-};
struct freebsd32_nmount_args {
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)];
@@ -693,6 +685,14 @@ struct freebsd32_getdirentries_args {
char count_l_[PADL_(size_t)]; size_t count; char count_r_[PADR_(size_t)];
char basep_l_[PADL_(int32_t *)]; int32_t * basep; char basep_r_[PADR_(int32_t *)];
};
+struct freebsd32_kevent_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char changelist_l_[PADL_(const struct kevent32 *)]; const struct kevent32 * changelist; char changelist_r_[PADR_(const struct kevent32 *)];
+ char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
+ char eventlist_l_[PADL_(struct kevent32 *)]; struct kevent32 * eventlist; char eventlist_r_[PADR_(struct kevent32 *)];
+ char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
+ char timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * timeout; char timeout_r_[PADR_(const struct timespec32 *)];
+};
#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
@@ -747,7 +747,6 @@ int freebsd32_jail(struct thread *, struct freebsd32_jail_args *);
int freebsd32_sigtimedwait(struct thread *, struct freebsd32_sigtimedwait_args *);
int freebsd32_sigwaitinfo(struct thread *, struct freebsd32_sigwaitinfo_args *);
int freebsd32_aio_waitcomplete(struct thread *, struct freebsd32_aio_waitcomplete_args *);
-int freebsd32_kevent(struct thread *, struct freebsd32_kevent_args *);
int freebsd32_nmount(struct thread *, struct freebsd32_nmount_args *);
int freebsd32_sendfile(struct thread *, struct freebsd32_sendfile_args *);
int freebsd32_ksem_init(struct thread *, struct freebsd32_ksem_init_args *);
@@ -823,6 +822,7 @@ int freebsd32_fstat(struct thread *, struct freebsd32_fstat_args *);
int freebsd32_fstatat(struct thread *, struct freebsd32_fstatat_args *);
int freebsd32_fhstat(struct thread *, struct freebsd32_fhstat_args *);
int freebsd32_getdirentries(struct thread *, struct freebsd32_getdirentries_args *);
+int freebsd32_kevent(struct thread *, struct freebsd32_kevent_args *);
#ifdef COMPAT_43
@@ -1165,6 +1165,14 @@ struct freebsd11_freebsd32_fhstat_args {
char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
char sb_l_[PADL_(struct freebsd11_stat32 *)]; struct freebsd11_stat32 * sb; char sb_r_[PADR_(struct freebsd11_stat32 *)];
};
+struct freebsd11_freebsd32_kevent_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char changelist_l_[PADL_(const struct kevent32_freebsd11 *)]; const struct kevent32_freebsd11 * changelist; char changelist_r_[PADR_(const struct kevent32_freebsd11 *)];
+ char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
+ char eventlist_l_[PADL_(struct kevent32_freebsd11 *)]; struct kevent32_freebsd11 * eventlist; char eventlist_r_[PADR_(struct kevent32_freebsd11 *)];
+ char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
+ char timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * timeout; char timeout_r_[PADR_(const struct timespec32 *)];
+};
#ifdef PAD64_REQUIRED
#else
#endif
@@ -1196,6 +1204,7 @@ int freebsd11_freebsd32_lstat(struct thread *, struct freebsd11_freebsd32_lstat_
int freebsd11_freebsd32_getdirentries(struct thread *, struct freebsd11_freebsd32_getdirentries_args *);
int freebsd11_freebsd32_getdents(struct thread *, struct freebsd11_freebsd32_getdents_args *);
int freebsd11_freebsd32_fhstat(struct thread *, struct freebsd11_freebsd32_fhstat_args *);
+int freebsd11_freebsd32_kevent(struct thread *, struct freebsd11_freebsd32_kevent_args *);
int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fstatat_args *);
int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mknodat_args *);
@@ -1294,7 +1303,7 @@ int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mkno
#define FREEBSD32_SYS_AUE_freebsd32_sigtimedwait AUE_SIGWAIT
#define FREEBSD32_SYS_AUE_freebsd32_sigwaitinfo AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_aio_waitcomplete AUE_AIO_WAITCOMPLETE
-#define FREEBSD32_SYS_AUE_freebsd32_kevent AUE_KEVENT
+#define FREEBSD32_SYS_AUE_freebsd11_freebsd32_kevent AUE_KEVENT
#define FREEBSD32_SYS_AUE_freebsd32_nmount AUE_NMOUNT
#define FREEBSD32_SYS_AUE_freebsd32_sendfile AUE_SENDFILE
#define FREEBSD32_SYS_AUE_freebsd32_ksem_init AUE_SEMINIT
@@ -1360,6 +1369,7 @@ int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mkno
#define FREEBSD32_SYS_AUE_freebsd32_fstatat AUE_FSTATAT
#define FREEBSD32_SYS_AUE_freebsd32_fhstat AUE_FHSTAT
#define FREEBSD32_SYS_AUE_freebsd32_getdirentries AUE_GETDIRENTRIES
+#define FREEBSD32_SYS_AUE_freebsd32_kevent AUE_KEVENT
#undef PAD_
#undef PADL_
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index 3a93b654e7c5..4818ada6051d 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -299,7 +299,7 @@
#define FREEBSD32_SYS_getresuid 360
#define FREEBSD32_SYS_getresgid 361
#define FREEBSD32_SYS_kqueue 362
-#define FREEBSD32_SYS_freebsd32_kevent 363
+#define FREEBSD32_SYS_freebsd11_freebsd32_kevent 363
#define FREEBSD32_SYS_extattr_set_fd 371
#define FREEBSD32_SYS_extattr_get_fd 372
#define FREEBSD32_SYS_extattr_delete_fd 373
@@ -467,4 +467,5 @@
#define FREEBSD32_SYS_getfsstat 557
#define FREEBSD32_SYS_fhstatfs 558
#define FREEBSD32_SYS_mknodat 559
-#define FREEBSD32_SYS_MAXSYSCALL 560
+#define FREEBSD32_SYS_freebsd32_kevent 560
+#define FREEBSD32_SYS_MAXSYSCALL 561
diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c
index 10166d3930a2..6588321af1a5 100644
--- a/sys/compat/freebsd32/freebsd32_syscalls.c
+++ b/sys/compat/freebsd32/freebsd32_syscalls.c
@@ -372,7 +372,7 @@ const char *freebsd32_syscallnames[] = {
"getresuid", /* 360 = getresuid */
"getresgid", /* 361 = getresgid */
"kqueue", /* 362 = kqueue */
- "freebsd32_kevent", /* 363 = freebsd32_kevent */
+ "compat11.freebsd32_kevent", /* 363 = freebsd11 freebsd32_kevent */
"#364", /* 364 = __cap_get_proc */
"#365", /* 365 = __cap_set_proc */
"#366", /* 366 = __cap_get_fd */
@@ -592,4 +592,5 @@ const char *freebsd32_syscallnames[] = {
"getfsstat", /* 557 = getfsstat */
"fhstatfs", /* 558 = fhstatfs */
"mknodat", /* 559 = mknodat */
+ "freebsd32_kevent", /* 560 = freebsd32_kevent */
};
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index ffb99932e7b5..ee7d6c763d0b 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -421,7 +421,7 @@ struct sysent freebsd32_sysent[] = {
{ AS(getresuid_args), (sy_call_t *)sys_getresuid, AUE_GETRESUID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 360 = getresuid */
{ AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 361 = getresgid */
{ 0, (sy_call_t *)sys_kqueue, AUE_KQUEUE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 362 = kqueue */
- { AS(freebsd32_kevent_args), (sy_call_t *)freebsd32_kevent, AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 363 = freebsd32_kevent */
+ { compat11(AS(freebsd11_freebsd32_kevent_args),freebsd32_kevent), AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 363 = freebsd11 freebsd32_kevent */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = __cap_get_proc */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = __cap_set_proc */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 366 = __cap_get_fd */
@@ -641,4 +641,5 @@ struct sysent freebsd32_sysent[] = {
{ AS(getfsstat_args), (sy_call_t *)sys_getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 557 = getfsstat */
{ AS(fhstatfs_args), (sy_call_t *)sys_fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 558 = fhstatfs */
{ AS(mknodat_args), (sy_call_t *)sys_mknodat, AUE_MKNODAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 559 = mknodat */
+ { AS(freebsd32_kevent_args), (sy_call_t *)freebsd32_kevent, AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 560 = freebsd32_kevent */
};
diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c
index b85ce2b498ff..2303788d6c04 100644
--- a/sys/compat/freebsd32/freebsd32_systrace_args.c
+++ b/sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -1774,18 +1774,6 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 0;
break;
}
- /* freebsd32_kevent */
- case 363: {
- struct freebsd32_kevent_args *p = params;
- iarg[0] = p->fd; /* int */
- uarg[1] = (intptr_t) p->changelist; /* const struct kevent32 * */
- iarg[2] = p->nchanges; /* int */
- uarg[3] = (intptr_t) p->eventlist; /* struct kevent32 * */
- iarg[4] = p->nevents; /* int */
- uarg[5] = (intptr_t) p->timeout; /* const struct timespec32 * */
- *n_args = 6;
- break;
- }
/* extattr_set_fd */
case 371: {
struct extattr_set_fd_args *p = params;
@@ -3266,6 +3254,18 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 4;
break;
}
+ /* freebsd32_kevent */
+ case 560: {
+ struct freebsd32_kevent_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->changelist; /* const struct kevent32 * */
+ iarg[2] = p->nchanges; /* int */
+ uarg[3] = (intptr_t) p->eventlist; /* struct kevent32 * */
+ iarg[4] = p->nevents; /* int */
+ uarg[5] = (intptr_t) p->timeout; /* const struct timespec32 * */
+ *n_args = 6;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -6088,31 +6088,6 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
/* kqueue */
case 362:
break;
- /* freebsd32_kevent */
- case 363:
- switch(ndx) {
- case 0:
- p = "int";
- break;
- case 1:
- p = "userland const struct kevent32 *";
- break;
- case 2:
- p = "int";
- break;
- case 3:
- p = "userland struct kevent32 *";
- break;
- case 4:
- p = "int";
- break;
- case 5:
- p = "userland const struct timespec32 *";
- break;
- default:
- break;
- };
- break;
/* extattr_set_fd */
case 371:
switch(ndx) {
@@ -8768,6 +8743,31 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* freebsd32_kevent */
+ case 560:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "userland const struct kevent32 *";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "userland struct kevent32 *";
+ break;
+ case 4:
+ p = "int";
+ break;
+ case 5:
+ p = "userland const struct timespec32 *";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -9805,11 +9805,6 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
/* kqueue */
case 362:
- /* freebsd32_kevent */
- case 363:
- if (ndx == 0 || ndx == 1)
- p = "int";
- break;
/* extattr_set_fd */
case 371:
if (ndx == 0 || ndx == 1)
@@ -10619,6 +10614,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* freebsd32_kevent */
+ case 560:
+ 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 4ca6fd08c57d..125587d50574 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -414,7 +414,7 @@ struct sysent sysent[] = {
{ AS(getresuid_args), (sy_call_t *)sys_getresuid, AUE_GETRESUID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 360 = getresuid */
{ AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 361 = getresgid */
{ 0, (sy_call_t *)sys_kqueue, AUE_KQUEUE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 362 = kqueue */
- { AS(kevent_args), (sy_call_t *)sys_kevent, AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 363 = kevent */
+ { compat11(AS(freebsd11_kevent_args),kevent), AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 363 = freebsd11 kevent */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = __cap_get_proc */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = __cap_set_proc */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 366 = __cap_get_fd */
@@ -611,4 +611,5 @@ struct sysent sysent[] = {
{ AS(getfsstat_args), (sy_call_t *)sys_getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 557 = getfsstat */
{ AS(fhstatfs_args), (sy_call_t *)sys_fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 558 = fhstatfs */
{ AS(mknodat_args), (sy_call_t *)sys_mknodat, AUE_MKNODAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 559 = mknodat */
+ { AS(kevent_args), (sy_call_t *)sys_kevent, AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 560 = kevent */
};
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index 64d8bdf35ed6..7b6d8f494d3d 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -369,7 +369,7 @@ const char *syscallnames[] = {
"getresuid", /* 360 = getresuid */
"getresgid", /* 361 = getresgid */
"kqueue", /* 362 = kqueue */
- "kevent", /* 363 = kevent */
+ "compat11.kevent", /* 363 = freebsd11 kevent */
"#364", /* 364 = __cap_get_proc */
"#365", /* 365 = __cap_set_proc */
"#366", /* 366 = __cap_get_fd */
@@ -566,4 +566,5 @@ const char *syscallnames[] = {
"getfsstat", /* 557 = getfsstat */
"fhstatfs", /* 558 = fhstatfs */
"mknodat", /* 559 = mknodat */
+ "kevent", /* 560 = kevent */
};
diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c
index d61758054f4b..b6a5fdc30162 100644
--- a/sys/kern/systrace_args.c
+++ b/sys/kern/systrace_args.c
@@ -1819,18 +1819,6 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 0;
break;
}
- /* kevent */
- case 363: {
- struct kevent_args *p = params;
- iarg[0] = p->fd; /* int */
- uarg[1] = (intptr_t) p->changelist; /* struct kevent * */
- iarg[2] = p->nchanges; /* int */
- uarg[3] = (intptr_t) p->eventlist; /* struct kevent * */
- iarg[4] = p->nevents; /* int */
- uarg[5] = (intptr_t) p->timeout; /* const struct timespec * */
- *n_args = 6;
- break;
- }
/* extattr_set_fd */
case 371: {
struct extattr_set_fd_args *p = params;
@@ -3276,6 +3264,18 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 4;
break;
}
+ /* kevent */
+ case 560: {
+ struct kevent_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->changelist; /* struct kevent * */
+ iarg[2] = p->nchanges; /* int */
+ uarg[3] = (intptr_t) p->eventlist; /* struct kevent * */
+ iarg[4] = p->nevents; /* int */
+ uarg[5] = (intptr_t) p->timeout; /* const struct timespec * */
+ *n_args = 6;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -6173,31 +6173,6 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
/* kqueue */
case 362:
break;
- /* kevent */
- case 363:
- switch(ndx) {
- case 0:
- p = "int";
- break;
- case 1:
- p = "userland struct kevent *";
- break;
- case 2:
- p = "int";
- break;
- case 3:
- p = "userland struct kevent *";
- break;
- case 4:
- p = "int";
- break;
- case 5:
- p = "userland const struct timespec *";
- break;
- default:
- break;
- };
- break;
/* extattr_set_fd */
case 371:
switch(ndx) {
@@ -8728,6 +8703,31 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
+ /* kevent */
+ case 560:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "userland struct kevent *";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "userland struct kevent *";
+ break;
+ case 4:
+ p = "int";
+ break;
+ case 5:
+ p = "userland const struct timespec *";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -9792,11 +9792,6 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
/* kqueue */
case 362:
- /* kevent */
- case 363:
- if (ndx == 0 || ndx == 1)
- p = "int";
- break;
/* extattr_set_fd */
case 371:
if (ndx == 0 || ndx == 1)
@@ -10614,6 +10609,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* kevent */
+ case 560:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index e7c59bc28a9a..3df4f6e58c3e 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -305,7 +305,7 @@
#define SYS_getresuid 360
#define SYS_getresgid 361
#define SYS_kqueue 362
-#define SYS_kevent 363
+#define SYS_freebsd11_kevent 363
#define SYS_extattr_set_fd 371
#define SYS_extattr_get_fd 372
#define SYS_extattr_delete_fd 373
@@ -477,4 +477,5 @@
#define SYS_getfsstat 557
#define SYS_fhstatfs 558
#define SYS_mknodat 559
-#define SYS_MAXSYSCALL 560
+#define SYS_kevent 560
+#define SYS_MAXSYSCALL 561
diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk
index c18d22114cda..f47acb96a9b8 100644
--- a/sys/sys/syscall.mk
+++ b/sys/sys/syscall.mk
@@ -234,7 +234,7 @@ MIASM = \
getresuid.o \
getresgid.o \
kqueue.o \
- kevent.o \
+ freebsd11_kevent.o \
extattr_set_fd.o \
extattr_get_fd.o \
extattr_delete_fd.o \
@@ -404,4 +404,5 @@ MIASM = \
fstatfs.o \
getfsstat.o \
fhstatfs.o \
- mknodat.o
+ mknodat.o \
+ kevent.o
diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h
index bed321b123c1..8be549fd34a8 100644
--- a/sys/sys/sysproto.h
+++ b/sys/sys/sysproto.h
@@ -962,14 +962,6 @@ struct getresgid_args {
struct kqueue_args {
register_t dummy;
};
-struct kevent_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char changelist_l_[PADL_(struct kevent *)]; struct kevent * changelist; char changelist_r_[PADR_(struct kevent *)];
- char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
- char eventlist_l_[PADL_(struct kevent *)]; struct kevent * eventlist; char eventlist_r_[PADR_(struct kevent *)];
- char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
- char timeout_l_[PADL_(const struct timespec *)]; const struct timespec * timeout; char timeout_r_[PADR_(const struct timespec *)];
-};
struct extattr_set_fd_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char attrnamespace_l_[PADL_(int)]; int attrnamespace; char attrnamespace_r_[PADR_(int)];
@@ -1761,6 +1753,14 @@ struct mknodat_args {
char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
char dev_l_[PADL_(dev_t)]; dev_t dev; char dev_r_[PADR_(dev_t)];
};
+struct kevent_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char changelist_l_[PADL_(struct kevent *)]; struct kevent * changelist; char changelist_r_[PADR_(struct kevent *)];
+ char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
+ char eventlist_l_[PADL_(struct kevent *)]; struct kevent * eventlist; char eventlist_r_[PADR_(struct kevent *)];
+ char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
+ char timeout_l_[PADL_(const struct timespec *)]; const struct timespec * timeout; char timeout_r_[PADR_(const struct timespec *)];
+};
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 *);
@@ -1976,7 +1976,6 @@ int sys_aio_waitcomplete(struct thread *, struct aio_waitcomplete_args *);
int sys_getresuid(struct thread *, struct getresuid_args *);
int sys_getresgid(struct thread *, struct getresgid_args *);
int sys_kqueue(struct thread *, struct kqueue_args *);
-int sys_kevent(struct thread *, struct kevent_args *);
int sys_extattr_set_fd(struct thread *, struct extattr_set_fd_args *);
int sys_extattr_get_fd(struct thread *, struct extattr_get_fd_args *);
int sys_extattr_delete_fd(struct thread *, struct extattr_delete_fd_args *);
@@ -2141,6 +2140,7 @@ int sys_fstatfs(struct thread *, struct fstatfs_args *);
int sys_getfsstat(struct thread *, struct getfsstat_args *);
int sys_fhstatfs(struct thread *, struct fhstatfs_args *);
int sys_mknodat(struct thread *, struct mknodat_args *);
+int sys_kevent(struct thread *, struct kevent_args *);
#ifdef COMPAT_43
@@ -2519,6 +2519,14 @@ struct freebsd11_fhstat_args {
char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
char sb_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * sb; char sb_r_[PADR_(struct freebsd11_stat *)];
};
+struct freebsd11_kevent_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char changelist_l_[PADL_(struct kevent_freebsd11 *)]; struct kevent_freebsd11 * changelist; char changelist_r_[PADR_(struct kevent_freebsd11 *)];
+ char nchanges_l_[PADL_(int)]; int nchanges; char nchanges_r_[PADR_(int)];
+ char eventlist_l_[PADL_(struct kevent_freebsd11 *)]; struct kevent_freebsd11 * eventlist; char eventlist_r_[PADR_(struct kevent_freebsd11 *)];
+ char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
+ char timeout_l_[PADL_(const struct timespec *)]; const struct timespec * timeout; char timeout_r_[PADR_(const struct timespec *)];
+};
struct freebsd11_getfsstat_args {
char buf_l_[PADL_(struct freebsd11_statfs *)]; struct freebsd11_statfs * buf; char buf_r_[PADR_(struct freebsd11_statfs *)];
char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)];
@@ -2558,6 +2566,7 @@ int freebsd11_nstat(struct thread *, struct freebsd11_nstat_args *);
int freebsd11_nfstat(struct thread *, struct freebsd11_nfstat_args *);
int freebsd11_nlstat(struct thread *, struct freebsd11_nlstat_args *);
int freebsd11_fhstat(struct thread *, struct freebsd11_fhstat_args *);
+int freebsd11_kevent(struct thread *, struct freebsd11_kevent_args *);
int freebsd11_getfsstat(struct thread *, struct freebsd11_getfsstat_args *);
int freebsd11_statfs(struct thread *, struct freebsd11_statfs_args *);
int freebsd11_fstatfs(struct thread *, struct freebsd11_fstatfs_args *);
@@ -2852,7 +2861,7 @@ int freebsd11_mknodat(struct thread *, struct freebsd11_mknodat_args *);
#define SYS_AUE_getresuid AUE_GETRESUID
#define SYS_AUE_getresgid AUE_GETRESGID
#define SYS_AUE_kqueue AUE_KQUEUE
-#define SYS_AUE_kevent AUE_KEVENT
+#define SYS_AUE_freebsd11_kevent AUE_KEVENT
#define SYS_AUE_extattr_set_fd AUE_EXTATTR_SET_FD
#define SYS_AUE_extattr_get_fd AUE_EXTATTR_GET_FD
#define SYS_AUE_extattr_delete_fd AUE_EXTATTR_DELETE_FD
@@ -3023,6 +3032,7 @@ int freebsd11_mknodat(struct thread *, struct freebsd11_mknodat_args *);
#define SYS_AUE_getfsstat AUE_GETFSSTAT
#define SYS_AUE_fhstatfs AUE_FHSTATFS
#define SYS_AUE_mknodat AUE_MKNODAT
+#define SYS_AUE_kevent AUE_KEVENT
#undef PAD_
#undef PADL_