aboutsummaryrefslogtreecommitdiff
path: root/sys/arm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/linux/linux_proto.h5
-rw-r--r--sys/arm/linux/linux_sysent.c2
-rw-r--r--sys/arm/linux/linux_systrace_args.c26
3 files changed, 30 insertions, 3 deletions
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 */