From 77eb9841471345a729ebbd0902c1eee08b18b176 Mon Sep 17 00:00:00 2001 From: Conrad Meyer Date: Tue, 17 Nov 2020 19:53:59 +0000 Subject: [PATCH] 'make sysent' for r367773 X-MFC-With: r367773 --- sys/amd64/linux/linux_proto.h | 10 ++++- sys/amd64/linux/linux_sysent.c | 4 +- sys/amd64/linux/linux_systrace_args.c | 52 ++++++++++++++++++++++- sys/amd64/linux32/linux32_proto.h | 10 ++++- sys/amd64/linux32/linux32_sysent.c | 4 +- sys/amd64/linux32/linux32_systrace_args.c | 52 ++++++++++++++++++++++- sys/arm64/linux/linux_proto.h | 10 ++++- sys/arm64/linux/linux_sysent.c | 4 +- sys/arm64/linux/linux_systrace_args.c | 52 ++++++++++++++++++++++- sys/i386/linux/linux_proto.h | 10 ++++- sys/i386/linux/linux_sysent.c | 4 +- sys/i386/linux/linux_systrace_args.c | 52 ++++++++++++++++++++++- 12 files changed, 240 insertions(+), 24 deletions(-) diff --git a/sys/amd64/linux/linux_proto.h b/sys/amd64/linux/linux_proto.h index b4cff9bfbcd..b03540f9b7c 100644 --- a/sys/amd64/linux/linux_proto.h +++ b/sys/amd64/linux/linux_proto.h @@ -1143,10 +1143,16 @@ struct linux_prlimit64_args { char old_l_[PADL_(struct rlimit *)]; struct rlimit * old; char old_r_[PADR_(struct rlimit *)]; }; struct linux_name_to_handle_at_args { - register_t dummy; + char dirfd_l_[PADL_(l_int)]; l_int dirfd; char dirfd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char mnt_id_l_[PADL_(l_int *)]; l_int * mnt_id; char mnt_id_r_[PADR_(l_int *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_open_by_handle_at_args { - register_t dummy; + char mountdirfd_l_[PADL_(l_int)]; l_int mountdirfd; char mountdirfd_r_[PADR_(l_int)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_clock_adjtime_args { register_t dummy; diff --git a/sys/amd64/linux/linux_sysent.c b/sys/amd64/linux/linux_sysent.c index b140e887833..558e56f87ba 100644 --- a/sys/amd64/linux/linux_sysent.c +++ b/sys/amd64/linux/linux_sysent.c @@ -320,8 +320,8 @@ struct sysent linux_sysent[] = { { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_init, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 300 = linux_fanotify_init */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_mark, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 301 = linux_fanotify_mark */ { .sy_narg = AS(linux_prlimit64_args), .sy_call = (sy_call_t *)linux_prlimit64, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 302 = linux_prlimit64 */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 303 = linux_name_to_handle_at */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 304 = linux_open_by_handle_at */ + { .sy_narg = AS(linux_name_to_handle_at_args), .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 303 = linux_name_to_handle_at */ + { .sy_narg = AS(linux_open_by_handle_at_args), .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 304 = linux_open_by_handle_at */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_clock_adjtime, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 305 = linux_clock_adjtime */ { .sy_narg = AS(linux_syncfs_args), .sy_call = (sy_call_t *)linux_syncfs, .sy_auevent = AUE_SYNC, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 306 = linux_syncfs */ { .sy_narg = AS(linux_sendmmsg_args), .sy_call = (sy_call_t *)linux_sendmmsg, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 307 = linux_sendmmsg */ diff --git a/sys/amd64/linux/linux_systrace_args.c b/sys/amd64/linux/linux_systrace_args.c index 4203723ff99..5aa83b94e7a 100644 --- a/sys/amd64/linux/linux_systrace_args.c +++ b/sys/amd64/linux/linux_systrace_args.c @@ -2321,12 +2321,22 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_name_to_handle_at */ case 303: { - *n_args = 0; + struct linux_name_to_handle_at_args *p = params; + iarg[0] = p->dirfd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->handle; /* struct l_file_handle * */ + uarg[3] = (intptr_t) p->mnt_id; /* l_int * */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_open_by_handle_at */ case 304: { - *n_args = 0; + struct linux_open_by_handle_at_args *p = params; + iarg[0] = p->mountdirfd; /* l_int */ + uarg[1] = (intptr_t) p->handle; /* struct l_file_handle * */ + iarg[2] = p->flags; /* l_int */ + *n_args = 3; break; } /* linux_clock_adjtime */ @@ -6340,9 +6350,41 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 303: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland struct l_file_handle *"; + break; + case 3: + p = "userland l_int *"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_open_by_handle_at */ case 304: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland struct l_file_handle *"; + break; + case 2: + p = "l_int"; + break; + default: + break; + }; break; /* linux_clock_adjtime */ case 305: @@ -8153,8 +8195,14 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 303: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_open_by_handle_at */ case 304: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_clock_adjtime */ case 305: /* linux_syncfs */ diff --git a/sys/amd64/linux32/linux32_proto.h b/sys/amd64/linux32/linux32_proto.h index 948cf582c68..f9402c8e815 100644 --- a/sys/amd64/linux32/linux32_proto.h +++ b/sys/amd64/linux32/linux32_proto.h @@ -1218,10 +1218,16 @@ struct linux_prlimit64_args { char old_l_[PADL_(struct rlimit *)]; struct rlimit * old; char old_r_[PADR_(struct rlimit *)]; }; struct linux_name_to_handle_at_args { - register_t dummy; + char dirfd_l_[PADL_(l_int)]; l_int dirfd; char dirfd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char mnt_id_l_[PADL_(l_int *)]; l_int * mnt_id; char mnt_id_r_[PADR_(l_int *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_open_by_handle_at_args { - register_t dummy; + char mountdirfd_l_[PADL_(l_int)]; l_int mountdirfd; char mountdirfd_r_[PADR_(l_int)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_clock_adjtime_args { register_t dummy; diff --git a/sys/amd64/linux32/linux32_sysent.c b/sys/amd64/linux32/linux32_sysent.c index caaa4c3c444..6da5fcb1fad 100644 --- a/sys/amd64/linux32/linux32_sysent.c +++ b/sys/amd64/linux32/linux32_sysent.c @@ -358,8 +358,8 @@ struct sysent linux32_sysent[] = { { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_init, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 338 = linux_fanotify_init */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_mark, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 339 = linux_fanotify_mark */ { .sy_narg = AS(linux_prlimit64_args), .sy_call = (sy_call_t *)linux_prlimit64, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 340 = linux_prlimit64 */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 341 = linux_name_to_handle_at */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 342 = linux_open_by_handle_at */ + { .sy_narg = AS(linux_name_to_handle_at_args), .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 341 = linux_name_to_handle_at */ + { .sy_narg = AS(linux_open_by_handle_at_args), .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 342 = linux_open_by_handle_at */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_clock_adjtime, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 343 = linux_clock_adjtime */ { .sy_narg = AS(linux_syncfs_args), .sy_call = (sy_call_t *)linux_syncfs, .sy_auevent = AUE_SYNC, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 344 = linux_syncfs */ { .sy_narg = AS(linux_sendmmsg_args), .sy_call = (sy_call_t *)linux_sendmmsg, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 345 = linux_sendmmsg */ diff --git a/sys/amd64/linux32/linux32_systrace_args.c b/sys/amd64/linux32/linux32_systrace_args.c index 9913fe8fcc7..8e2c11e380c 100644 --- a/sys/amd64/linux32/linux32_systrace_args.c +++ b/sys/amd64/linux32/linux32_systrace_args.c @@ -2445,12 +2445,22 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_name_to_handle_at */ case 341: { - *n_args = 0; + struct linux_name_to_handle_at_args *p = params; + iarg[0] = p->dirfd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->handle; /* struct l_file_handle * */ + uarg[3] = (intptr_t) p->mnt_id; /* l_int * */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_open_by_handle_at */ case 342: { - *n_args = 0; + struct linux_open_by_handle_at_args *p = params; + iarg[0] = p->mountdirfd; /* l_int */ + uarg[1] = (intptr_t) p->handle; /* struct l_file_handle * */ + iarg[2] = p->flags; /* l_int */ + *n_args = 3; break; } /* linux_clock_adjtime */ @@ -6970,9 +6980,41 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 341: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland struct l_file_handle *"; + break; + case 3: + p = "userland l_int *"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_open_by_handle_at */ case 342: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland struct l_file_handle *"; + break; + case 2: + p = "l_int"; + break; + default: + break; + }; break; /* linux_clock_adjtime */ case 343: @@ -9326,8 +9368,14 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 341: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_open_by_handle_at */ case 342: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_clock_adjtime */ case 343: /* linux_syncfs */ diff --git a/sys/arm64/linux/linux_proto.h b/sys/arm64/linux/linux_proto.h index c913f9a436e..6d6a3123d36 100644 --- a/sys/arm64/linux/linux_proto.h +++ b/sys/arm64/linux/linux_proto.h @@ -967,10 +967,16 @@ struct linux_fanotify_mark_args { register_t dummy; }; struct linux_name_to_handle_at_args { - register_t dummy; + char dirfd_l_[PADL_(l_int)]; l_int dirfd; char dirfd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char mnt_id_l_[PADL_(l_int *)]; l_int * mnt_id; char mnt_id_r_[PADR_(l_int *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_open_by_handle_at_args { - register_t dummy; + char mountdirfd_l_[PADL_(l_int)]; l_int mountdirfd; char mountdirfd_r_[PADR_(l_int)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_clock_adjtime_args { register_t dummy; diff --git a/sys/arm64/linux/linux_sysent.c b/sys/arm64/linux/linux_sysent.c index edce525b05d..162a2789b2f 100644 --- a/sys/arm64/linux/linux_sysent.c +++ b/sys/arm64/linux/linux_sysent.c @@ -281,8 +281,8 @@ struct sysent linux_sysent[] = { { .sy_narg = AS(linux_prlimit64_args), .sy_call = (sy_call_t *)linux_prlimit64, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 261 = linux_prlimit64 */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_init, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 262 = linux_fanotify_init */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_mark, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 263 = linux_fanotify_mark */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 264 = linux_name_to_handle_at */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 265 = linux_open_by_handle_at */ + { .sy_narg = AS(linux_name_to_handle_at_args), .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 264 = linux_name_to_handle_at */ + { .sy_narg = AS(linux_open_by_handle_at_args), .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 265 = linux_open_by_handle_at */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_clock_adjtime, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 266 = linux_clock_adjtime */ { .sy_narg = AS(linux_syncfs_args), .sy_call = (sy_call_t *)linux_syncfs, .sy_auevent = AUE_SYNC, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 267 = linux_syncfs */ { .sy_narg = AS(linux_setns_args), .sy_call = (sy_call_t *)linux_setns, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 268 = linux_setns */ diff --git a/sys/arm64/linux/linux_systrace_args.c b/sys/arm64/linux/linux_systrace_args.c index 636307c1c1f..f0c4f840529 100644 --- a/sys/arm64/linux/linux_systrace_args.c +++ b/sys/arm64/linux/linux_systrace_args.c @@ -1960,12 +1960,22 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_name_to_handle_at */ case 264: { - *n_args = 0; + struct linux_name_to_handle_at_args *p = params; + iarg[0] = p->dirfd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->handle; /* struct l_file_handle * */ + uarg[3] = (intptr_t) p->mnt_id; /* l_int * */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_open_by_handle_at */ case 265: { - *n_args = 0; + struct linux_open_by_handle_at_args *p = params; + iarg[0] = p->mountdirfd; /* l_int */ + uarg[1] = (intptr_t) p->handle; /* struct l_file_handle * */ + iarg[2] = p->flags; /* l_int */ + *n_args = 3; break; } /* linux_clock_adjtime */ @@ -5408,9 +5418,41 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 264: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland struct l_file_handle *"; + break; + case 3: + p = "userland l_int *"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_open_by_handle_at */ case 265: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland struct l_file_handle *"; + break; + case 2: + p = "l_int"; + break; + default: + break; + }; break; /* linux_clock_adjtime */ case 266: @@ -6923,8 +6965,14 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 263: /* linux_name_to_handle_at */ case 264: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_open_by_handle_at */ case 265: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_clock_adjtime */ case 266: /* linux_syncfs */ diff --git a/sys/i386/linux/linux_proto.h b/sys/i386/linux/linux_proto.h index 5a546f071a0..ae5e591f86b 100644 --- a/sys/i386/linux/linux_proto.h +++ b/sys/i386/linux/linux_proto.h @@ -1211,10 +1211,16 @@ struct linux_prlimit64_args { char old_l_[PADL_(struct rlimit *)]; struct rlimit * old; char old_r_[PADR_(struct rlimit *)]; }; struct linux_name_to_handle_at_args { - register_t dummy; + char dirfd_l_[PADL_(l_int)]; l_int dirfd; char dirfd_r_[PADR_(l_int)]; + char name_l_[PADL_(const char *)]; const char * name; char name_r_[PADR_(const char *)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char mnt_id_l_[PADL_(l_int *)]; l_int * mnt_id; char mnt_id_r_[PADR_(l_int *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_open_by_handle_at_args { - register_t dummy; + char mountdirfd_l_[PADL_(l_int)]; l_int mountdirfd; char mountdirfd_r_[PADR_(l_int)]; + char handle_l_[PADL_(struct l_file_handle *)]; struct l_file_handle * handle; char handle_r_[PADR_(struct l_file_handle *)]; + char flags_l_[PADL_(l_int)]; l_int flags; char flags_r_[PADR_(l_int)]; }; struct linux_clock_adjtime_args { register_t dummy; diff --git a/sys/i386/linux/linux_sysent.c b/sys/i386/linux/linux_sysent.c index 5d078bf13db..2b0054d7f8f 100644 --- a/sys/i386/linux/linux_sysent.c +++ b/sys/i386/linux/linux_sysent.c @@ -358,8 +358,8 @@ struct sysent linux_sysent[] = { { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_init, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 338 = linux_fanotify_init */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_fanotify_mark, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 339 = linux_fanotify_mark */ { .sy_narg = AS(linux_prlimit64_args), .sy_call = (sy_call_t *)linux_prlimit64, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 340 = linux_prlimit64 */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 341 = linux_name_to_handle_at */ - { .sy_narg = 0, .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 342 = linux_open_by_handle_at */ + { .sy_narg = AS(linux_name_to_handle_at_args), .sy_call = (sy_call_t *)linux_name_to_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 341 = linux_name_to_handle_at */ + { .sy_narg = AS(linux_open_by_handle_at_args), .sy_call = (sy_call_t *)linux_open_by_handle_at, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 342 = linux_open_by_handle_at */ { .sy_narg = 0, .sy_call = (sy_call_t *)linux_clock_adjtime, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 343 = linux_clock_adjtime */ { .sy_narg = AS(linux_syncfs_args), .sy_call = (sy_call_t *)linux_syncfs, .sy_auevent = AUE_SYNC, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 344 = linux_syncfs */ { .sy_narg = AS(linux_sendmmsg_args), .sy_call = (sy_call_t *)linux_sendmmsg, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 345 = linux_sendmmsg */ diff --git a/sys/i386/linux/linux_systrace_args.c b/sys/i386/linux/linux_systrace_args.c index be5af662345..484c6f61558 100644 --- a/sys/i386/linux/linux_systrace_args.c +++ b/sys/i386/linux/linux_systrace_args.c @@ -2484,12 +2484,22 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_name_to_handle_at */ case 341: { - *n_args = 0; + struct linux_name_to_handle_at_args *p = params; + iarg[0] = p->dirfd; /* l_int */ + uarg[1] = (intptr_t) p->name; /* const char * */ + uarg[2] = (intptr_t) p->handle; /* struct l_file_handle * */ + uarg[3] = (intptr_t) p->mnt_id; /* l_int * */ + iarg[4] = p->flags; /* l_int */ + *n_args = 5; break; } /* linux_open_by_handle_at */ case 342: { - *n_args = 0; + struct linux_open_by_handle_at_args *p = params; + iarg[0] = p->mountdirfd; /* l_int */ + uarg[1] = (intptr_t) p->handle; /* struct l_file_handle * */ + iarg[2] = p->flags; /* l_int */ + *n_args = 3; break; } /* linux_clock_adjtime */ @@ -7047,9 +7057,41 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 341: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "userland struct l_file_handle *"; + break; + case 3: + p = "userland l_int *"; + break; + case 4: + p = "l_int"; + break; + default: + break; + }; break; /* linux_open_by_handle_at */ case 342: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "userland struct l_file_handle *"; + break; + case 2: + p = "l_int"; + break; + default: + break; + }; break; /* linux_clock_adjtime */ case 343: @@ -9432,8 +9474,14 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_name_to_handle_at */ case 341: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_open_by_handle_at */ case 342: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_clock_adjtime */ case 343: /* linux_syncfs */ -- 2.45.0