From 9dd48b87e6caa617799700db7f2f5db91b68dbcc Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sun, 27 Dec 2020 12:55:50 +0200 Subject: [PATCH] Regen. --- sys/compat/freebsd32/freebsd32_syscall.h | 3 +- sys/compat/freebsd32/freebsd32_syscalls.c | 1 + sys/compat/freebsd32/freebsd32_sysent.c | 1 + .../freebsd32/freebsd32_systrace_args.c | 30 +++++++++++++++++++ sys/kern/init_sysent.c | 1 + sys/kern/syscalls.c | 1 + sys/kern/systrace_args.c | 30 +++++++++++++++++++ sys/sys/syscall.h | 3 +- sys/sys/syscall.mk | 3 +- sys/sys/sysproto.h | 7 +++++ 10 files changed, 77 insertions(+), 3 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h index d5493ace13c..f3633479f27 100644 --- a/sys/compat/freebsd32/freebsd32_syscall.h +++ b/sys/compat/freebsd32/freebsd32_syscall.h @@ -503,4 +503,5 @@ #define FREEBSD32_SYS___realpathat 574 #define FREEBSD32_SYS_close_range 575 #define FREEBSD32_SYS_rpctls_syscall 576 -#define FREEBSD32_SYS_MAXSYSCALL 577 +#define FREEBSD32_SYS___specialfd 577 +#define FREEBSD32_SYS_MAXSYSCALL 578 diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c index d13d5e44115..bb0af9d0b54 100644 --- a/sys/compat/freebsd32/freebsd32_syscalls.c +++ b/sys/compat/freebsd32/freebsd32_syscalls.c @@ -613,4 +613,5 @@ const char *freebsd32_syscallnames[] = { "__realpathat", /* 574 = __realpathat */ "close_range", /* 575 = close_range */ "rpctls_syscall", /* 576 = rpctls_syscall */ + "__specialfd", /* 577 = __specialfd */ }; diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c index dfa05880978..0207bb35604 100644 --- a/sys/compat/freebsd32/freebsd32_sysent.c +++ b/sys/compat/freebsd32/freebsd32_sysent.c @@ -666,4 +666,5 @@ struct sysent freebsd32_sysent[] = { { .sy_narg = AS(__realpathat_args), .sy_call = (sy_call_t *)sys___realpathat, .sy_auevent = AUE_REALPATHAT, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 574 = __realpathat */ { .sy_narg = AS(close_range_args), .sy_call = (sy_call_t *)sys_close_range, .sy_auevent = AUE_CLOSERANGE, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 575 = close_range */ { .sy_narg = AS(rpctls_syscall_args), .sy_call = (sy_call_t *)lkmressys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 576 = rpctls_syscall */ + { .sy_narg = AS(__specialfd_args), .sy_call = (sy_call_t *)sys___specialfd, .sy_auevent = AUE_SPECIALFD, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 577 = __specialfd */ }; diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c index 6822bc29b55..88a07350858 100644 --- a/sys/compat/freebsd32/freebsd32_systrace_args.c +++ b/sys/compat/freebsd32/freebsd32_systrace_args.c @@ -3384,6 +3384,15 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 2; break; } + /* __specialfd */ + case 577: { + struct __specialfd_args *p = params; + iarg[0] = p->type; /* int */ + uarg[1] = (intptr_t) p->req; /* const void * */ + uarg[2] = p->len; /* size_t */ + *n_args = 3; + break; + } default: *n_args = 0; break; @@ -9124,6 +9133,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; + /* __specialfd */ + case 577: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const void *"; + break; + case 2: + p = "size_t"; + break; + default: + break; + }; + break; default: break; }; @@ -11028,6 +11053,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; + /* __specialfd */ + case 577: + 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 adf57817f66..80b10ac6b62 100644 --- a/sys/kern/init_sysent.c +++ b/sys/kern/init_sysent.c @@ -632,4 +632,5 @@ struct sysent sysent[] = { { .sy_narg = AS(__realpathat_args), .sy_call = (sy_call_t *)sys___realpathat, .sy_auevent = AUE_REALPATHAT, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 574 = __realpathat */ { .sy_narg = AS(close_range_args), .sy_call = (sy_call_t *)sys_close_range, .sy_auevent = AUE_CLOSERANGE, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 575 = close_range */ { .sy_narg = AS(rpctls_syscall_args), .sy_call = (sy_call_t *)lkmressys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 576 = rpctls_syscall */ + { .sy_narg = AS(__specialfd_args), .sy_call = (sy_call_t *)sys___specialfd, .sy_auevent = AUE_SPECIALFD, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 577 = __specialfd */ }; diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c index e1d7cdaf9f3..e986d999640 100644 --- a/sys/kern/syscalls.c +++ b/sys/kern/syscalls.c @@ -583,4 +583,5 @@ const char *syscallnames[] = { "__realpathat", /* 574 = __realpathat */ "close_range", /* 575 = close_range */ "rpctls_syscall", /* 576 = rpctls_syscall */ + "__specialfd", /* 577 = __specialfd */ }; diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c index a3ca65f4cc1..8076cc44113 100644 --- a/sys/kern/systrace_args.c +++ b/sys/kern/systrace_args.c @@ -3376,6 +3376,15 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 2; break; } + /* __specialfd */ + case 577: { + struct __specialfd_args *p = params; + iarg[0] = p->type; /* int */ + uarg[1] = (intptr_t) p->req; /* const void * */ + uarg[2] = p->len; /* size_t */ + *n_args = 3; + break; + } default: *n_args = 0; break; @@ -9029,6 +9038,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; + /* __specialfd */ + case 577: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const void *"; + break; + case 2: + p = "size_t"; + break; + default: + break; + }; + break; default: break; }; @@ -10960,6 +10985,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; + /* __specialfd */ + case 577: + if (ndx == 0 || ndx == 1) + p = "int"; + break; default: break; }; diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h index 550d9b735e0..cbbbe7c1d21 100644 --- a/sys/sys/syscall.h +++ b/sys/sys/syscall.h @@ -512,4 +512,5 @@ #define SYS___realpathat 574 #define SYS_close_range 575 #define SYS_rpctls_syscall 576 -#define SYS_MAXSYSCALL 577 +#define SYS___specialfd 577 +#define SYS_MAXSYSCALL 578 diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk index 63d73c1e483..ecd82f1722d 100644 --- a/sys/sys/syscall.mk +++ b/sys/sys/syscall.mk @@ -417,4 +417,5 @@ MIASM = \ sigfastblock.o \ __realpathat.o \ close_range.o \ - rpctls_syscall.o + rpctls_syscall.o \ + __specialfd.o diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h index 03abffb41af..3ff472872a5 100644 --- a/sys/sys/sysproto.h +++ b/sys/sys/sysproto.h @@ -1836,6 +1836,11 @@ struct rpctls_syscall_args { char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)]; char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; }; +struct __specialfd_args { + char type_l_[PADL_(int)]; int type; char type_r_[PADR_(int)]; + char req_l_[PADL_(const void *)]; const void * req; char req_r_[PADR_(const void *)]; + char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_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 *); @@ -2227,6 +2232,7 @@ int sys_sigfastblock(struct thread *, struct sigfastblock_args *); int sys___realpathat(struct thread *, struct __realpathat_args *); int sys_close_range(struct thread *, struct close_range_args *); int sys_rpctls_syscall(struct thread *, struct rpctls_syscall_args *); +int sys___specialfd(struct thread *, struct __specialfd_args *); #ifdef COMPAT_43 @@ -3158,6 +3164,7 @@ int freebsd12_closefrom(struct thread *, struct freebsd12_closefrom_args *); #define SYS_AUE___realpathat AUE_REALPATHAT #define SYS_AUE_close_range AUE_CLOSERANGE #define SYS_AUE_rpctls_syscall AUE_NULL +#define SYS_AUE___specialfd AUE_SPECIALFD #undef PAD_ #undef PADL_ -- 2.45.0