diff options
-rw-r--r-- | sys/amd64/linux/linux_proto.h | 5 | ||||
-rw-r--r-- | sys/amd64/linux/linux_sysent.c | 2 | ||||
-rw-r--r-- | sys/amd64/linux/linux_systrace_args.c | 26 | ||||
-rw-r--r-- | sys/amd64/linux32/linux32_proto.h | 5 | ||||
-rw-r--r-- | sys/amd64/linux32/linux32_sysent.c | 2 | ||||
-rw-r--r-- | sys/amd64/linux32/linux32_systrace_args.c | 26 | ||||
-rw-r--r-- | sys/arm/linux/linux_proto.h | 5 | ||||
-rw-r--r-- | sys/arm/linux/linux_sysent.c | 2 | ||||
-rw-r--r-- | sys/arm/linux/linux_systrace_args.c | 26 | ||||
-rw-r--r-- | sys/arm64/linux/linux_proto.h | 5 | ||||
-rw-r--r-- | sys/arm64/linux/linux_sysent.c | 2 | ||||
-rw-r--r-- | sys/arm64/linux/linux_systrace_args.c | 26 | ||||
-rw-r--r-- | sys/i386/linux/linux_proto.h | 5 | ||||
-rw-r--r-- | sys/i386/linux/linux_sysent.c | 2 | ||||
-rw-r--r-- | sys/i386/linux/linux_systrace_args.c | 26 |
15 files changed, 150 insertions, 15 deletions
diff --git a/sys/amd64/linux/linux_proto.h b/sys/amd64/linux/linux_proto.h index de89ce271c5e..938edfe276fb 100644 --- a/sys/amd64/linux/linux_proto.h +++ b/sys/amd64/linux/linux_proto.h @@ -940,7 +940,10 @@ struct linux_tee_args { register_t dummy; }; struct linux_sync_file_range_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)]; + char nbytes_l_[PADL_(l_loff_t)]; l_loff_t nbytes; char nbytes_r_[PADR_(l_loff_t)]; + char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; struct linux_vmsplice_args { register_t dummy; diff --git a/sys/amd64/linux/linux_sysent.c b/sys/amd64/linux/linux_sysent.c index 7a156cc4b5ef..4d08d69363af 100644 --- a/sys/amd64/linux/linux_sysent.c +++ b/sys/amd64/linux/linux_sysent.c @@ -294,7 +294,7 @@ struct sysent linux_sysent[] = { { AS(linux_get_robust_list_args), (sy_call_t *)linux_get_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 274 = linux_get_robust_list */ { 0, (sy_call_t *)linux_splice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 275 = linux_splice */ { 0, (sy_call_t *)linux_tee, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 276 = linux_tee */ - { 0, (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 277 = linux_sync_file_range */ + { AS(linux_sync_file_range_args), (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 277 = linux_sync_file_range */ { 0, (sy_call_t *)linux_vmsplice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 278 = linux_vmsplice */ { 0, (sy_call_t *)linux_move_pages, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 279 = linux_move_pages */ { AS(linux_utimensat_args), (sy_call_t *)linux_utimensat, AUE_FUTIMESAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 280 = linux_utimensat */ diff --git a/sys/amd64/linux/linux_systrace_args.c b/sys/amd64/linux/linux_systrace_args.c index afed6de0e6f4..5d7afd1f47db 100644 --- a/sys/amd64/linux/linux_systrace_args.c +++ b/sys/amd64/linux/linux_systrace_args.c @@ -1977,7 +1977,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_sync_file_range */ case 277: { - *n_args = 0; + struct linux_sync_file_range_args *p = params; + iarg[0] = p->fd; /* l_int */ + iarg[1] = p->offset; /* l_loff_t */ + iarg[2] = p->nbytes; /* l_loff_t */ + uarg[3] = p->flags; /* unsigned int */ + *n_args = 4; break; } /* linux_vmsplice */ @@ -5553,6 +5558,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_sync_file_range */ case 277: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_loff_t"; + break; + case 2: + p = "l_loff_t"; + break; + case 3: + p = "unsigned int"; + break; + default: + break; + }; break; /* linux_vmsplice */ case 278: @@ -7509,6 +7530,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 276: /* linux_sync_file_range */ case 277: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_vmsplice */ case 278: /* linux_move_pages */ diff --git a/sys/amd64/linux32/linux32_proto.h b/sys/amd64/linux32/linux32_proto.h index 21ad0cb51e07..de6589f985f6 100644 --- a/sys/amd64/linux32/linux32_proto.h +++ b/sys/amd64/linux32/linux32_proto.h @@ -1020,7 +1020,10 @@ struct linux_splice_args { register_t dummy; }; struct linux_sync_file_range_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)]; + char nbytes_l_[PADL_(l_loff_t)]; l_loff_t nbytes; char nbytes_r_[PADR_(l_loff_t)]; + char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; struct linux_tee_args { register_t dummy; diff --git a/sys/amd64/linux32/linux32_sysent.c b/sys/amd64/linux32/linux32_sysent.c index 486921c7899c..4e176c084708 100644 --- a/sys/amd64/linux32/linux32_sysent.c +++ b/sys/amd64/linux32/linux32_sysent.c @@ -331,7 +331,7 @@ struct sysent linux32_sysent[] = { { AS(linux_set_robust_list_args), (sy_call_t *)linux_set_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 311 = linux_set_robust_list */ { AS(linux_get_robust_list_args), (sy_call_t *)linux_get_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 312 = linux_get_robust_list */ { 0, (sy_call_t *)linux_splice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 313 = linux_splice */ - { 0, (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 314 = linux_sync_file_range */ + { AS(linux_sync_file_range_args), (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 314 = linux_sync_file_range */ { 0, (sy_call_t *)linux_tee, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 315 = linux_tee */ { 0, (sy_call_t *)linux_vmsplice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 316 = linux_vmsplice */ { 0, (sy_call_t *)linux_move_pages, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 317 = linux_move_pages */ diff --git a/sys/amd64/linux32/linux32_systrace_args.c b/sys/amd64/linux32/linux32_systrace_args.c index 71f35a557036..e2fdeef45f72 100644 --- a/sys/amd64/linux32/linux32_systrace_args.c +++ b/sys/amd64/linux32/linux32_systrace_args.c @@ -2118,7 +2118,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_sync_file_range */ case 314: { - *n_args = 0; + struct linux_sync_file_range_args *p = params; + iarg[0] = p->fd; /* l_int */ + iarg[1] = p->offset; /* l_loff_t */ + iarg[2] = p->nbytes; /* l_loff_t */ + uarg[3] = p->flags; /* unsigned int */ + *n_args = 4; break; } /* linux_tee */ @@ -6164,6 +6169,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_sync_file_range */ case 314: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_loff_t"; + break; + case 2: + p = "l_loff_t"; + break; + case 3: + p = "unsigned int"; + break; + default: + break; + }; break; /* linux_tee */ case 315: @@ -8654,6 +8675,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 313: /* linux_sync_file_range */ case 314: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_tee */ case 315: /* linux_vmsplice */ diff --git a/sys/arm/linux/linux_proto.h b/sys/arm/linux/linux_proto.h index 10905e81217a..2e8833a17ffa 100644 --- a/sys/arm/linux/linux_proto.h +++ b/sys/arm/linux/linux_proto.h @@ -1076,7 +1076,10 @@ struct linux_splice_args { register_t dummy; }; struct linux_sync_file_range_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)]; + char nbytes_l_[PADL_(l_loff_t)]; l_loff_t nbytes; char nbytes_r_[PADR_(l_loff_t)]; + char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; struct linux_tee_args { register_t dummy; diff --git a/sys/arm/linux/linux_sysent.c b/sys/arm/linux/linux_sysent.c index 642c907c2517..ee1c3b974516 100644 --- a/sys/arm/linux/linux_sysent.c +++ b/sys/arm/linux/linux_sysent.c @@ -358,7 +358,7 @@ struct sysent linux_sysent[] = { { AS(linux_set_robust_list_args), (sy_call_t *)linux_set_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 338 = linux_set_robust_list */ { AS(linux_get_robust_list_args), (sy_call_t *)linux_get_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 339 = linux_get_robust_list */ { 0, (sy_call_t *)linux_splice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 340 = linux_splice */ - { 0, (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 341 = linux_sync_file_range */ + { AS(linux_sync_file_range_args), (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 341 = linux_sync_file_range */ { 0, (sy_call_t *)linux_tee, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 342 = linux_tee */ { 0, (sy_call_t *)linux_vmsplice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 343 = linux_vmsplice */ { 0, (sy_call_t *)linux_move_pages, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 344 = linux_move_pages */ diff --git a/sys/arm/linux/linux_systrace_args.c b/sys/arm/linux/linux_systrace_args.c index 10519044d71f..fe45f2db45e1 100644 --- a/sys/arm/linux/linux_systrace_args.c +++ b/sys/arm/linux/linux_systrace_args.c @@ -2224,7 +2224,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_sync_file_range */ case 341: { - *n_args = 0; + struct linux_sync_file_range_args *p = params; + iarg[0] = p->fd; /* l_int */ + iarg[1] = p->offset; /* l_loff_t */ + iarg[2] = p->nbytes; /* l_loff_t */ + uarg[3] = p->flags; /* unsigned int */ + *n_args = 4; break; } /* linux_tee */ @@ -5975,6 +5980,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_sync_file_range */ case 341: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_loff_t"; + break; + case 2: + p = "l_loff_t"; + break; + case 3: + p = "unsigned int"; + break; + default: + break; + }; break; /* linux_tee */ case 342: @@ -7515,6 +7536,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 340: /* linux_sync_file_range */ case 341: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_tee */ case 342: /* linux_vmsplice */ diff --git a/sys/arm64/linux/linux_proto.h b/sys/arm64/linux/linux_proto.h index c8d4fc353335..ab56bd70ecf1 100644 --- a/sys/arm64/linux/linux_proto.h +++ b/sys/arm64/linux/linux_proto.h @@ -317,7 +317,10 @@ struct linux_fdatasync_args { char fd_l_[PADL_(l_uint)]; l_uint fd; char fd_r_[PADR_(l_uint)]; }; struct linux_sync_file_range_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)]; + char nbytes_l_[PADL_(l_loff_t)]; l_loff_t nbytes; char nbytes_r_[PADR_(l_loff_t)]; + char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; struct linux_timerfd_create_args { char clockid_l_[PADL_(l_int)]; l_int clockid; char clockid_r_[PADR_(l_int)]; diff --git a/sys/arm64/linux/linux_sysent.c b/sys/arm64/linux/linux_sysent.c index 9fb1fea603a4..f8475fe3da44 100644 --- a/sys/arm64/linux/linux_sysent.c +++ b/sys/arm64/linux/linux_sysent.c @@ -101,7 +101,7 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 81 = linux_sync */ { AS(fsync_args), (sy_call_t *)sys_fsync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 82 = fsync */ { AS(linux_fdatasync_args), (sy_call_t *)linux_fdatasync, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 83 = linux_fdatasync */ - { 0, (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 84 = linux_sync_file_range */ + { AS(linux_sync_file_range_args), (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 84 = linux_sync_file_range */ { AS(linux_timerfd_create_args), (sy_call_t *)linux_timerfd_create, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 85 = linux_timerfd_create */ { AS(linux_timerfd_settime_args), (sy_call_t *)linux_timerfd_settime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 86 = linux_timerfd_settime */ { AS(linux_timerfd_gettime_args), (sy_call_t *)linux_timerfd_gettime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 87 = linux_timerfd_gettime */ diff --git a/sys/arm64/linux/linux_systrace_args.c b/sys/arm64/linux/linux_systrace_args.c index b7a916611a71..f13ceb96008f 100644 --- a/sys/arm64/linux/linux_systrace_args.c +++ b/sys/arm64/linux/linux_systrace_args.c @@ -597,7 +597,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_sync_file_range */ case 84: { - *n_args = 0; + struct linux_sync_file_range_args *p = params; + iarg[0] = p->fd; /* l_int */ + iarg[1] = p->offset; /* l_loff_t */ + iarg[2] = p->nbytes; /* l_loff_t */ + uarg[3] = p->flags; /* unsigned int */ + *n_args = 4; break; } /* linux_timerfd_create */ @@ -3025,6 +3030,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_sync_file_range */ case 84: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_loff_t"; + break; + case 2: + p = "l_loff_t"; + break; + case 3: + p = "unsigned int"; + break; + default: + break; + }; break; /* linux_timerfd_create */ case 85: @@ -5773,6 +5794,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_sync_file_range */ case 84: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_timerfd_create */ case 85: if (ndx == 0 || ndx == 1) diff --git a/sys/i386/linux/linux_proto.h b/sys/i386/linux/linux_proto.h index 710b27353c3e..4d98d6387a51 100644 --- a/sys/i386/linux/linux_proto.h +++ b/sys/i386/linux/linux_proto.h @@ -1038,7 +1038,10 @@ struct linux_splice_args { register_t dummy; }; struct linux_sync_file_range_args { - register_t dummy; + char fd_l_[PADL_(l_int)]; l_int fd; char fd_r_[PADR_(l_int)]; + char offset_l_[PADL_(l_loff_t)]; l_loff_t offset; char offset_r_[PADR_(l_loff_t)]; + char nbytes_l_[PADL_(l_loff_t)]; l_loff_t nbytes; char nbytes_r_[PADR_(l_loff_t)]; + char flags_l_[PADL_(unsigned int)]; unsigned int flags; char flags_r_[PADR_(unsigned int)]; }; struct linux_tee_args { register_t dummy; diff --git a/sys/i386/linux/linux_sysent.c b/sys/i386/linux/linux_sysent.c index c5319228bdd9..390456b2b5ca 100644 --- a/sys/i386/linux/linux_sysent.c +++ b/sys/i386/linux/linux_sysent.c @@ -331,7 +331,7 @@ struct sysent linux_sysent[] = { { AS(linux_set_robust_list_args), (sy_call_t *)linux_set_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 311 = linux_set_robust_list */ { AS(linux_get_robust_list_args), (sy_call_t *)linux_get_robust_list, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 312 = linux_get_robust_list */ { 0, (sy_call_t *)linux_splice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 313 = linux_splice */ - { 0, (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 314 = linux_sync_file_range */ + { AS(linux_sync_file_range_args), (sy_call_t *)linux_sync_file_range, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 314 = linux_sync_file_range */ { 0, (sy_call_t *)linux_tee, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 315 = linux_tee */ { 0, (sy_call_t *)linux_vmsplice, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 316 = linux_vmsplice */ { 0, (sy_call_t *)linux_move_pages, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 317 = linux_move_pages */ diff --git a/sys/i386/linux/linux_systrace_args.c b/sys/i386/linux/linux_systrace_args.c index 44ea6bca4e99..966f0c8383b3 100644 --- a/sys/i386/linux/linux_systrace_args.c +++ b/sys/i386/linux/linux_systrace_args.c @@ -2194,7 +2194,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) } /* linux_sync_file_range */ case 314: { - *n_args = 0; + struct linux_sync_file_range_args *p = params; + iarg[0] = p->fd; /* l_int */ + iarg[1] = p->offset; /* l_loff_t */ + iarg[2] = p->nbytes; /* l_loff_t */ + uarg[3] = p->flags; /* unsigned int */ + *n_args = 4; break; } /* linux_tee */ @@ -6395,6 +6400,22 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* linux_sync_file_range */ case 314: + switch(ndx) { + case 0: + p = "l_int"; + break; + case 1: + p = "l_loff_t"; + break; + case 2: + p = "l_loff_t"; + break; + case 3: + p = "unsigned int"; + break; + default: + break; + }; break; /* linux_tee */ case 315: @@ -8932,6 +8953,9 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) case 313: /* linux_sync_file_range */ case 314: + if (ndx == 0 || ndx == 1) + p = "int"; + break; /* linux_tee */ case 315: /* linux_vmsplice */ |