svn commit: r359602 - in stable/12/sys: amd64/linux amd64/linux32 arm64/linux i386/linux
Mark Johnston
markj at FreeBSD.org
Fri Apr 3 16:11:55 UTC 2020
Author: markj
Date: Fri Apr 3 16:11:39 2020
New Revision: 359602
URL: https://svnweb.freebsd.org/changeset/base/359602
Log:
MFC r355752, r355753 (by trasz):
Fix definitions for linuxulator's sync_file_range(2).
Modified:
stable/12/sys/amd64/linux/linux_proto.h
stable/12/sys/amd64/linux/linux_sysent.c
stable/12/sys/amd64/linux/linux_systrace_args.c
stable/12/sys/amd64/linux/syscalls.master
stable/12/sys/amd64/linux32/linux32_proto.h
stable/12/sys/amd64/linux32/linux32_sysent.c
stable/12/sys/amd64/linux32/linux32_systrace_args.c
stable/12/sys/amd64/linux32/syscalls.master
stable/12/sys/arm64/linux/linux_proto.h
stable/12/sys/arm64/linux/linux_sysent.c
stable/12/sys/arm64/linux/linux_systrace_args.c
stable/12/sys/arm64/linux/syscalls.master
stable/12/sys/i386/linux/linux_proto.h
stable/12/sys/i386/linux/linux_sysent.c
stable/12/sys/i386/linux/linux_systrace_args.c
stable/12/sys/i386/linux/syscalls.master
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/amd64/linux/linux_proto.h
==============================================================================
--- stable/12/sys/amd64/linux/linux_proto.h Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux/linux_proto.h Fri Apr 3 16:11:39 2020 (r359602)
@@ -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;
Modified: stable/12/sys/amd64/linux/linux_sysent.c
==============================================================================
--- stable/12/sys/amd64/linux/linux_sysent.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux/linux_sysent.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -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 */
Modified: stable/12/sys/amd64/linux/linux_systrace_args.c
==============================================================================
--- stable/12/sys/amd64/linux/linux_systrace_args.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux/linux_systrace_args.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -1977,7 +1977,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg
}
/* 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 *d
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 *
case 276:
/* linux_sync_file_range */
case 277:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_vmsplice */
case 278:
/* linux_move_pages */
Modified: stable/12/sys/amd64/linux/syscalls.master
==============================================================================
--- stable/12/sys/amd64/linux/syscalls.master Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux/syscalls.master Fri Apr 3 16:11:39 2020 (r359602)
@@ -467,7 +467,8 @@
struct linux_robust_list_head **head, l_size_t *len); }
275 AUE_NULL STD { int linux_splice(void); }
276 AUE_NULL STD { int linux_tee(void); }
-277 AUE_NULL STD { int linux_sync_file_range(void); }
+277 AUE_NULL STD { int linux_sync_file_range(l_int fd, l_loff_t offset,
+ l_loff_t nbytes, unsigned int flags); }
278 AUE_NULL STD { int linux_vmsplice(void); }
279 AUE_NULL STD { int linux_move_pages(void); }
280 AUE_FUTIMESAT STD { int linux_utimensat(l_int dfd, const char *pathname, \
Modified: stable/12/sys/amd64/linux32/linux32_proto.h
==============================================================================
--- stable/12/sys/amd64/linux32/linux32_proto.h Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux32/linux32_proto.h Fri Apr 3 16:11:39 2020 (r359602)
@@ -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;
Modified: stable/12/sys/amd64/linux32/linux32_sysent.c
==============================================================================
--- stable/12/sys/amd64/linux32/linux32_sysent.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux32/linux32_sysent.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -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 */
Modified: stable/12/sys/amd64/linux32/linux32_systrace_args.c
==============================================================================
--- stable/12/sys/amd64/linux32/linux32_systrace_args.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux32/linux32_systrace_args.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -2118,7 +2118,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg
}
/* 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 *d
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 *
case 313:
/* linux_sync_file_range */
case 314:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_tee */
case 315:
/* linux_vmsplice */
Modified: stable/12/sys/amd64/linux32/syscalls.master
==============================================================================
--- stable/12/sys/amd64/linux32/syscalls.master Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/amd64/linux32/syscalls.master Fri Apr 3 16:11:39 2020 (r359602)
@@ -524,7 +524,8 @@
312 AUE_NULL STD { int linux_get_robust_list(l_int pid, \
struct linux_robust_list_head **head, l_size_t *len); }
313 AUE_NULL STD { int linux_splice(void); }
-314 AUE_NULL STD { int linux_sync_file_range(void); }
+314 AUE_NULL STD { int linux_sync_file_range(l_int fd, l_loff_t offset,
+ l_loff_t nbytes, unsigned int flags); }
315 AUE_NULL STD { int linux_tee(void); }
316 AUE_NULL STD { int linux_vmsplice(void); }
; Linux 2.6.18:
Modified: stable/12/sys/arm64/linux/linux_proto.h
==============================================================================
--- stable/12/sys/arm64/linux/linux_proto.h Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/arm64/linux/linux_proto.h Fri Apr 3 16:11:39 2020 (r359602)
@@ -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)];
Modified: stable/12/sys/arm64/linux/linux_sysent.c
==============================================================================
--- stable/12/sys/arm64/linux/linux_sysent.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/arm64/linux/linux_sysent.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -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 */
Modified: stable/12/sys/arm64/linux/linux_systrace_args.c
==============================================================================
--- stable/12/sys/arm64/linux/linux_systrace_args.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/arm64/linux/linux_systrace_args.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -597,7 +597,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg
}
/* 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 *d
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 *
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)
Modified: stable/12/sys/arm64/linux/syscalls.master
==============================================================================
--- stable/12/sys/arm64/linux/syscalls.master Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/arm64/linux/syscalls.master Fri Apr 3 16:11:39 2020 (r359602)
@@ -450,7 +450,12 @@
l_uint fd);
}
84 AUE_NULL STD {
- int linux_sync_file_range(void);
+ int linux_sync_file_range(
+ l_int fd,
+ l_loff_t offset,
+ l_loff_t nbytes,
+ unsigned int flags
+ );
}
85 AUE_NULL STD {
int linux_timerfd_create(
Modified: stable/12/sys/i386/linux/linux_proto.h
==============================================================================
--- stable/12/sys/i386/linux/linux_proto.h Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/i386/linux/linux_proto.h Fri Apr 3 16:11:39 2020 (r359602)
@@ -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;
Modified: stable/12/sys/i386/linux/linux_sysent.c
==============================================================================
--- stable/12/sys/i386/linux/linux_sysent.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/i386/linux/linux_sysent.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -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 */
Modified: stable/12/sys/i386/linux/linux_systrace_args.c
==============================================================================
--- stable/12/sys/i386/linux/linux_systrace_args.c Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/i386/linux/linux_systrace_args.c Fri Apr 3 16:11:39 2020 (r359602)
@@ -2194,7 +2194,12 @@ systrace_args(int sysnum, void *params, uint64_t *uarg
}
/* 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 *d
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 *
case 313:
/* linux_sync_file_range */
case 314:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
/* linux_tee */
case 315:
/* linux_vmsplice */
Modified: stable/12/sys/i386/linux/syscalls.master
==============================================================================
--- stable/12/sys/i386/linux/syscalls.master Fri Apr 3 16:10:42 2020 (r359601)
+++ stable/12/sys/i386/linux/syscalls.master Fri Apr 3 16:11:39 2020 (r359602)
@@ -533,7 +533,8 @@
312 AUE_NULL STD { int linux_get_robust_list(l_int pid, \
struct linux_robust_list_head **head, l_size_t *len); }
313 AUE_NULL STD { int linux_splice(void); }
-314 AUE_NULL STD { int linux_sync_file_range(void); }
+314 AUE_NULL STD { int linux_sync_file_range(l_int fd, l_loff_t offset,
+ l_loff_t nbytes, unsigned int flags); }
315 AUE_NULL STD { int linux_tee(void); }
316 AUE_NULL STD { int linux_vmsplice(void); }
; Linux 2.6.18:
More information about the svn-src-stable
mailing list