From a4890265660a055fe29ac04633880b4baaeeba0c Mon Sep 17 00:00:00 2001 From: Mariusz Zaborski Date: Sat, 6 Apr 2019 09:37:10 +0000 Subject: [PATCH] Regen after r345982. --- 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 | 34 +++++++++++++++++++ sys/kern/init_sysent.c | 1 + sys/kern/syscalls.c | 1 + sys/kern/systrace_args.c | 34 +++++++++++++++++++ sys/sys/syscall.h | 3 +- sys/sys/syscall.mk | 3 +- sys/sys/sysproto.h | 8 +++++ 10 files changed, 86 insertions(+), 3 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h index fe159abb7ca..3650bc3a120 100644 --- a/sys/compat/freebsd32/freebsd32_syscall.h +++ b/sys/compat/freebsd32/freebsd32_syscall.h @@ -494,4 +494,5 @@ #define FREEBSD32_SYS_fhlink 565 #define FREEBSD32_SYS_fhlinkat 566 #define FREEBSD32_SYS_fhreadlink 567 -#define FREEBSD32_SYS_MAXSYSCALL 568 +#define FREEBSD32_SYS_funlinkat 568 +#define FREEBSD32_SYS_MAXSYSCALL 569 diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c index 4992056ae28..feebf281470 100644 --- a/sys/compat/freebsd32/freebsd32_syscalls.c +++ b/sys/compat/freebsd32/freebsd32_syscalls.c @@ -604,4 +604,5 @@ const char *freebsd32_syscallnames[] = { "fhlink", /* 565 = fhlink */ "fhlinkat", /* 566 = fhlinkat */ "fhreadlink", /* 567 = fhreadlink */ + "funlinkat", /* 568 = funlinkat */ }; diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c index 6a41d577ffe..8ddf6b2cb77 100644 --- a/sys/compat/freebsd32/freebsd32_sysent.c +++ b/sys/compat/freebsd32/freebsd32_sysent.c @@ -651,4 +651,5 @@ struct sysent freebsd32_sysent[] = { { AS(fhlink_args), (sy_call_t *)sys_fhlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 565 = fhlink */ { AS(fhlinkat_args), (sy_call_t *)sys_fhlinkat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 566 = fhlinkat */ { AS(fhreadlink_args), (sy_call_t *)sys_fhreadlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 567 = fhreadlink */ + { AS(funlinkat_args), (sy_call_t *)sys_funlinkat, AUE_UNLINKAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 568 = funlinkat */ }; diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c index 05e2e8a9638..d59eb7c96c2 100644 --- a/sys/compat/freebsd32/freebsd32_systrace_args.c +++ b/sys/compat/freebsd32/freebsd32_systrace_args.c @@ -3310,6 +3310,16 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 3; break; } + /* funlinkat */ + case 568: { + struct funlinkat_args *p = params; + iarg[0] = p->dfd; /* int */ + uarg[1] = (intptr_t) p->path; /* const char * */ + iarg[2] = p->fd; /* int */ + iarg[3] = p->flag; /* int */ + *n_args = 4; + break; + } default: *n_args = 0; break; @@ -8905,6 +8915,25 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; + /* funlinkat */ + case 568: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "int"; + break; + default: + break; + }; + break; default: break; }; @@ -10774,6 +10803,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; + /* funlinkat */ + case 568: + 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 63de745465c..619d34933f3 100644 --- a/sys/kern/init_sysent.c +++ b/sys/kern/init_sysent.c @@ -617,4 +617,5 @@ struct sysent sysent[] = { { AS(fhlink_args), (sy_call_t *)sys_fhlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 565 = fhlink */ { AS(fhlinkat_args), (sy_call_t *)sys_fhlinkat, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 566 = fhlinkat */ { AS(fhreadlink_args), (sy_call_t *)sys_fhreadlink, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 567 = fhreadlink */ + { AS(funlinkat_args), (sy_call_t *)sys_funlinkat, AUE_UNLINKAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 568 = funlinkat */ }; diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c index 577859abe11..7e02ce40504 100644 --- a/sys/kern/syscalls.c +++ b/sys/kern/syscalls.c @@ -574,4 +574,5 @@ const char *syscallnames[] = { "fhlink", /* 565 = fhlink */ "fhlinkat", /* 566 = fhlinkat */ "fhreadlink", /* 567 = fhreadlink */ + "funlinkat", /* 568 = funlinkat */ }; diff --git a/sys/kern/systrace_args.c b/sys/kern/systrace_args.c index 196d13491a9..3cf76dfc6d4 100644 --- a/sys/kern/systrace_args.c +++ b/sys/kern/systrace_args.c @@ -3302,6 +3302,16 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 3; break; } + /* funlinkat */ + case 568: { + struct funlinkat_args *p = params; + iarg[0] = p->dfd; /* int */ + uarg[1] = (intptr_t) p->path; /* const char * */ + iarg[2] = p->fd; /* int */ + iarg[3] = p->flag; /* int */ + *n_args = 4; + break; + } default: *n_args = 0; break; @@ -8810,6 +8820,25 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; + /* funlinkat */ + case 568: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "int"; + break; + case 3: + p = "int"; + break; + default: + break; + }; + break; default: break; }; @@ -10706,6 +10735,11 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; + /* funlinkat */ + case 568: + if (ndx == 0 || ndx == 1) + p = "int"; + break; default: break; }; diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h index 3d749182add..d3ba7b3ce23 100644 --- a/sys/sys/syscall.h +++ b/sys/sys/syscall.h @@ -503,4 +503,5 @@ #define SYS_fhlink 565 #define SYS_fhlinkat 566 #define SYS_fhreadlink 567 -#define SYS_MAXSYSCALL 568 +#define SYS_funlinkat 568 +#define SYS_MAXSYSCALL 569 diff --git a/sys/sys/syscall.mk b/sys/sys/syscall.mk index 44a7a2ab9e3..bf560ad5609 100644 --- a/sys/sys/syscall.mk +++ b/sys/sys/syscall.mk @@ -408,4 +408,5 @@ MIASM = \ getfhat.o \ fhlink.o \ fhlinkat.o \ - fhreadlink.o + fhreadlink.o \ + funlinkat.o diff --git a/sys/sys/sysproto.h b/sys/sys/sysproto.h index d16a92a3b68..2150acbddb9 100644 --- a/sys/sys/sysproto.h +++ b/sys/sys/sysproto.h @@ -1790,6 +1790,12 @@ struct fhreadlink_args { char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)]; char bufsize_l_[PADL_(size_t)]; size_t bufsize; char bufsize_r_[PADR_(size_t)]; }; +struct funlinkat_args { + char dfd_l_[PADL_(int)]; int dfd; char dfd_r_[PADR_(int)]; + char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)]; + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)]; +}; 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 *); @@ -2174,6 +2180,7 @@ int sys_getfhat(struct thread *, struct getfhat_args *); int sys_fhlink(struct thread *, struct fhlink_args *); int sys_fhlinkat(struct thread *, struct fhlinkat_args *); int sys_fhreadlink(struct thread *, struct fhreadlink_args *); +int sys_funlinkat(struct thread *, struct funlinkat_args *); #ifdef COMPAT_43 @@ -3080,6 +3087,7 @@ int freebsd11_mknodat(struct thread *, struct freebsd11_mknodat_args *); #define SYS_AUE_fhlink AUE_NULL #define SYS_AUE_fhlinkat AUE_NULL #define SYS_AUE_fhreadlink AUE_NULL +#define SYS_AUE_funlinkat AUE_UNLINKAT #undef PAD_ #undef PADL_