Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F140043295
D2524.id5348.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
20 KB
Referenced Files
None
Subscribers
None
D2524.id5348.diff
View Options
Index: sys/compat/freebsd32/freebsd32_misc.c
===================================================================
--- sys/compat/freebsd32/freebsd32_misc.c
+++ sys/compat/freebsd32/freebsd32_misc.c
@@ -2593,25 +2593,13 @@
return (sys_cpuset_setaffinity(td, &ap));
}
-int
-freebsd32_nmount(struct thread *td,
- struct freebsd32_nmount_args /* {
- struct iovec *iovp;
- unsigned int iovcnt;
- int flags;
- } */ *uap)
+static int
+freebsd32_kern_nmount(struct thread *td, struct iovec32 *iovp,
+ unsigned int iovcnt, int flags)
{
struct uio *auio;
- uint64_t flags;
int error;
- /*
- * Mount flags are now 64-bits. On 32-bit archtectures only
- * 32-bits are passed in, but from here on everything handles
- * 64-bit flags correctly.
- */
- flags = uap->flags;
-
AUDIT_ARG_FFLAGS(flags);
/*
@@ -2627,10 +2615,10 @@
* check that we have an even number of iovec's
* and that we have at least two options.
*/
- if ((uap->iovcnt & 1) || (uap->iovcnt < 4))
+ if ((iovcnt & 1) || (iovcnt < 4))
return (EINVAL);
- error = freebsd32_copyinuio(uap->iovp, uap->iovcnt, &auio);
+ error = freebsd32_copyinuio(iovp, iovcnt, &auio);
if (error)
return (error);
error = vfs_donmount(td, flags, auio);
@@ -2639,6 +2627,35 @@
return error;
}
+int
+freebsd32_nmount(struct thread *td,
+ struct freebsd32_nmount_args /* {
+ struct iovec32 *iovp;
+ unsigned int iovcnt;
+ uint64_t flags;
+ } */ *uap)
+{
+
+ return (freebsd32_kern_nmount(td, uap->iovp, uap->iovcnt, uap->flags));
+}
+
+int
+freebsd32_onmount(struct thread *td,
+ struct freebsd32_onmount_args /* {
+ struct iovec32 *iovp;
+ unsigned int iovcnt;
+ int flags;
+ } */ *uap)
+{
+
+ /*
+ * Mount flags are now 64-bits. On 32-bit archtectures only
+ * 32-bits are passed in, but from here on everything handles
+ * 64-bit flags correctly.
+ */
+ return (freebsd32_kern_nmount(td, uap->iovp, uap->iovcnt, uap->flags));
+}
+
#if 0
int
freebsd32_xxx(struct thread *td, struct freebsd32_xxx_args *uap)
Index: sys/compat/freebsd32/freebsd32_proto.h
===================================================================
--- sys/compat/freebsd32/freebsd32_proto.h
+++ sys/compat/freebsd32/freebsd32_proto.h
@@ -328,7 +328,7 @@
char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)];
char timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * timeout; char timeout_r_[PADR_(const struct timespec32 *)];
};
-struct freebsd32_nmount_args {
+struct freebsd32_onmount_args {
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
@@ -703,6 +703,11 @@
char times_l_[PADL_(struct timespec *)]; struct timespec * times; char times_r_[PADR_(struct timespec *)];
char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
};
+struct freebsd32_nmount_args {
+ char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
+ char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)];
+ char flags_l_[PADL_(uint64_t)]; uint64_t flags; char flags_r_[PADR_(uint64_t)];
+};
#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
@@ -765,7 +770,7 @@
int freebsd32_sigwaitinfo(struct thread *, struct freebsd32_sigwaitinfo_args *);
int freebsd32_aio_waitcomplete(struct thread *, struct freebsd32_aio_waitcomplete_args *);
int freebsd32_kevent(struct thread *, struct freebsd32_kevent_args *);
-int freebsd32_nmount(struct thread *, struct freebsd32_nmount_args *);
+int freebsd32_onmount(struct thread *, struct freebsd32_onmount_args *);
int freebsd32_sendfile(struct thread *, struct freebsd32_sendfile_args *);
int freebsd32_ksem_init(struct thread *, struct freebsd32_ksem_init_args *);
int freebsd32_ksem_open(struct thread *, struct freebsd32_ksem_open_args *);
@@ -837,6 +842,7 @@
int freebsd32_ppoll(struct thread *, struct freebsd32_ppoll_args *);
int freebsd32_futimens(struct thread *, struct freebsd32_futimens_args *);
int freebsd32_utimensat(struct thread *, struct freebsd32_utimensat_args *);
+int freebsd32_nmount(struct thread *, struct freebsd32_nmount_args *);
#ifdef COMPAT_43
@@ -1194,7 +1200,7 @@
#define FREEBSD32_SYS_AUE_freebsd32_sigwaitinfo AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_aio_waitcomplete AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_kevent AUE_NULL
-#define FREEBSD32_SYS_AUE_freebsd32_nmount AUE_NMOUNT
+#define FREEBSD32_SYS_AUE_freebsd32_onmount AUE_NMOUNT
#define FREEBSD32_SYS_AUE_freebsd32_sendfile AUE_SENDFILE
#define FREEBSD32_SYS_AUE_freebsd32_ksem_init AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_ksem_open AUE_NULL
@@ -1254,6 +1260,7 @@
#define FREEBSD32_SYS_AUE_freebsd32_ppoll AUE_POLL
#define FREEBSD32_SYS_AUE_freebsd32_futimens AUE_FUTIMES
#define FREEBSD32_SYS_AUE_freebsd32_utimensat AUE_FUTIMESAT
+#define FREEBSD32_SYS_AUE_freebsd32_nmount AUE_NMOUNT
#undef PAD_
#undef PADL_
Index: sys/compat/freebsd32/freebsd32_syscall.h
===================================================================
--- sys/compat/freebsd32/freebsd32_syscall.h
+++ sys/compat/freebsd32/freebsd32_syscall.h
@@ -305,7 +305,7 @@
#define FREEBSD32_SYS_extattr_delete_fd 373
#define FREEBSD32_SYS___setugid 374
#define FREEBSD32_SYS_eaccess 376
-#define FREEBSD32_SYS_freebsd32_nmount 378
+#define FREEBSD32_SYS_freebsd32_onmount 378
#define FREEBSD32_SYS_kenv 390
#define FREEBSD32_SYS_lchflags 391
#define FREEBSD32_SYS_uuidgen 392
@@ -455,4 +455,5 @@
#define FREEBSD32_SYS_freebsd32_ppoll 545
#define FREEBSD32_SYS_freebsd32_futimens 546
#define FREEBSD32_SYS_freebsd32_utimensat 547
-#define FREEBSD32_SYS_MAXSYSCALL 548
+#define FREEBSD32_SYS_freebsd32_nmount 548
+#define FREEBSD32_SYS_MAXSYSCALL 549
Index: sys/compat/freebsd32/freebsd32_syscalls.c
===================================================================
--- sys/compat/freebsd32/freebsd32_syscalls.c
+++ sys/compat/freebsd32/freebsd32_syscalls.c
@@ -388,7 +388,7 @@
"#375", /* 375 = nfsclnt */
"eaccess", /* 376 = eaccess */
"#377", /* 377 = afs_syscall */
- "freebsd32_nmount", /* 378 = freebsd32_nmount */
+ "freebsd32_onmount", /* 378 = freebsd32_onmount */
"#379", /* 379 = kse_exit */
"#380", /* 380 = kse_wakeup */
"#381", /* 381 = kse_create */
@@ -581,4 +581,5 @@
"freebsd32_ppoll", /* 545 = freebsd32_ppoll */
"freebsd32_futimens", /* 546 = freebsd32_futimens */
"freebsd32_utimensat", /* 547 = freebsd32_utimensat */
+ "freebsd32_nmount", /* 548 = freebsd32_nmount */
};
Index: sys/compat/freebsd32/freebsd32_sysent.c
===================================================================
--- sys/compat/freebsd32/freebsd32_sysent.c
+++ sys/compat/freebsd32/freebsd32_sysent.c
@@ -425,7 +425,7 @@
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = nfsclnt */
{ AS(eaccess_args), (sy_call_t *)sys_eaccess, AUE_EACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = eaccess */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 377 = afs_syscall */
- { AS(freebsd32_nmount_args), (sy_call_t *)freebsd32_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = freebsd32_nmount */
+ { AS(freebsd32_onmount_args), (sy_call_t *)freebsd32_onmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = freebsd32_onmount */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = kse_exit */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 380 = kse_wakeup */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 381 = kse_create */
@@ -618,4 +618,5 @@
{ AS(freebsd32_ppoll_args), (sy_call_t *)freebsd32_ppoll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 545 = freebsd32_ppoll */
{ AS(freebsd32_futimens_args), (sy_call_t *)freebsd32_futimens, AUE_FUTIMES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 546 = freebsd32_futimens */
{ AS(freebsd32_utimensat_args), (sy_call_t *)freebsd32_utimensat, AUE_FUTIMESAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 547 = freebsd32_utimensat */
+ { AS(freebsd32_nmount_args), (sy_call_t *)freebsd32_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 548 = freebsd32_nmount */
};
Index: sys/compat/freebsd32/freebsd32_systrace_args.c
===================================================================
--- sys/compat/freebsd32/freebsd32_systrace_args.c
+++ sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -1944,9 +1944,9 @@
*n_args = 2;
break;
}
- /* freebsd32_nmount */
+ /* freebsd32_onmount */
case 378: {
- struct freebsd32_nmount_args *p = params;
+ struct freebsd32_onmount_args *p = params;
uarg[0] = (intptr_t) p->iovp; /* struct iovec32 * */
uarg[1] = p->iovcnt; /* unsigned int */
iarg[2] = p->flags; /* int */
@@ -3327,6 +3327,15 @@
*n_args = 4;
break;
}
+ /* freebsd32_nmount */
+ case 548: {
+ struct freebsd32_nmount_args *p = params;
+ uarg[0] = (intptr_t) p->iovp; /* struct iovec32 * */
+ uarg[1] = p->iovcnt; /* unsigned int */
+ uarg[2] = p->flags; /* uint64_t */
+ *n_args = 3;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -6438,7 +6447,7 @@
break;
};
break;
- /* freebsd32_nmount */
+ /* freebsd32_onmount */
case 378:
switch(ndx) {
case 0:
@@ -8923,6 +8932,22 @@
break;
};
break;
+ /* freebsd32_nmount */
+ case 548:
+ switch(ndx) {
+ case 0:
+ p = "struct iovec32 *";
+ break;
+ case 1:
+ p = "unsigned int";
+ break;
+ case 2:
+ p = "uint64_t";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -10057,7 +10082,7 @@
if (ndx == 0 || ndx == 1)
p = "int";
break;
- /* freebsd32_nmount */
+ /* freebsd32_onmount */
case 378:
if (ndx == 0 || ndx == 1)
p = "int";
@@ -10811,6 +10836,11 @@
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* freebsd32_nmount */
+ case 548:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
Index: sys/compat/freebsd32/syscalls.master
===================================================================
--- sys/compat/freebsd32/syscalls.master
+++ sys/compat/freebsd32/syscalls.master
@@ -686,7 +686,7 @@
375 AUE_NULL UNIMPL nfsclnt
376 AUE_EACCESS NOPROTO { int eaccess(char *path, int amode); }
377 AUE_NULL UNIMPL afs_syscall
-378 AUE_NMOUNT STD { int freebsd32_nmount(struct iovec32 *iovp, \
+378 AUE_NMOUNT STD { int freebsd32_onmount(struct iovec32 *iovp, \
unsigned int iovcnt, int flags); }
379 AUE_NULL UNIMPL kse_exit
380 AUE_NULL UNIMPL kse_wakeup
@@ -1074,3 +1074,5 @@
547 AUE_FUTIMESAT STD { int freebsd32_utimensat(int fd, \
char *path, \
struct timespec *times, int flag); }
+548 AUE_NMOUNT STD { int freebsd32_nmount(struct iovec32 *iovp, \
+ unsigned int iovcnt, uint64_t flags); }
Index: sys/kern/init_sysent.c
===================================================================
--- sys/kern/init_sysent.c
+++ sys/kern/init_sysent.c
@@ -418,7 +418,7 @@
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = nfsclnt */
{ AS(eaccess_args), (sy_call_t *)sys_eaccess, AUE_EACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = eaccess */
{ AS(afs3_syscall_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 377 = afs3_syscall */
- { AS(nmount_args), (sy_call_t *)sys_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = nmount */
+ { AS(onmount_args), (sy_call_t *)sys_onmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = onmount */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = kse_exit */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 380 = kse_wakeup */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 381 = kse_create */
@@ -588,4 +588,5 @@
{ AS(ppoll_args), (sy_call_t *)sys_ppoll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 545 = ppoll */
{ AS(futimens_args), (sy_call_t *)sys_futimens, AUE_FUTIMES, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 546 = futimens */
{ AS(utimensat_args), (sy_call_t *)sys_utimensat, AUE_FUTIMESAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 547 = utimensat */
+ { AS(nmount_args), (sy_call_t *)sys_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 548 = nmount */
};
Index: sys/kern/syscalls.c
===================================================================
--- sys/kern/syscalls.c
+++ sys/kern/syscalls.c
@@ -385,7 +385,7 @@
"#375", /* 375 = nfsclnt */
"eaccess", /* 376 = eaccess */
"afs3_syscall", /* 377 = afs3_syscall */
- "nmount", /* 378 = nmount */
+ "onmount", /* 378 = onmount */
"#379", /* 379 = kse_exit */
"#380", /* 380 = kse_wakeup */
"#381", /* 381 = kse_create */
@@ -555,4 +555,5 @@
"ppoll", /* 545 = ppoll */
"futimens", /* 546 = futimens */
"utimensat", /* 547 = utimensat */
+ "nmount", /* 548 = nmount */
};
Index: sys/kern/syscalls.master
===================================================================
--- sys/kern/syscalls.master
+++ sys/kern/syscalls.master
@@ -677,7 +677,7 @@
377 AUE_NULL NOSTD|NOTSTATIC { int afs3_syscall(long syscall, \
long parm1, long parm2, long parm3, \
long parm4, long parm5, long parm6); }
-378 AUE_NMOUNT STD { int nmount(struct iovec *iovp, \
+378 AUE_NMOUNT STD { int onmount(struct iovec *iovp, \
unsigned int iovcnt, int flags); }
379 AUE_NULL UNIMPL kse_exit
380 AUE_NULL UNIMPL kse_wakeup
@@ -988,5 +988,7 @@
547 AUE_FUTIMESAT STD { int utimensat(int fd, \
char *path, \
struct timespec *times, int flag); }
+548 AUE_NMOUNT STD { int nmount(struct iovec *iovp, \
+ unsigned int iovcnt, uint64_t flags); }
; Please copy any additions and changes to the following compatability tables:
; sys/compat/freebsd32/syscalls.master
Index: sys/kern/systrace_args.c
===================================================================
--- sys/kern/systrace_args.c
+++ sys/kern/systrace_args.c
@@ -2002,9 +2002,9 @@
*n_args = 7;
break;
}
- /* nmount */
+ /* onmount */
case 378: {
- struct nmount_args *p = params;
+ struct onmount_args *p = params;
uarg[0] = (intptr_t) p->iovp; /* struct iovec * */
uarg[1] = p->iovcnt; /* unsigned int */
iarg[2] = p->flags; /* int */
@@ -3337,6 +3337,15 @@
*n_args = 4;
break;
}
+ /* nmount */
+ case 548: {
+ struct nmount_args *p = params;
+ uarg[0] = (intptr_t) p->iovp; /* struct iovec * */
+ uarg[1] = p->iovcnt; /* unsigned int */
+ uarg[2] = p->flags; /* uint64_t */
+ *n_args = 3;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -6551,7 +6560,7 @@
break;
};
break;
- /* nmount */
+ /* onmount */
case 378:
switch(ndx) {
case 0:
@@ -8883,6 +8892,22 @@
break;
};
break;
+ /* nmount */
+ case 548:
+ switch(ndx) {
+ case 0:
+ p = "struct iovec *";
+ break;
+ case 1:
+ p = "unsigned int";
+ break;
+ case 2:
+ p = "uint64_t";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -10049,7 +10074,7 @@
if (ndx == 0 || ndx == 1)
p = "int";
break;
- /* nmount */
+ /* onmount */
case 378:
if (ndx == 0 || ndx == 1)
p = "int";
@@ -10806,6 +10831,11 @@
if (ndx == 0 || ndx == 1)
p = "int";
break;
+ /* nmount */
+ case 548:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
default:
break;
};
Index: sys/kern/vfs_mount.c
===================================================================
--- sys/kern/vfs_mount.c
+++ sys/kern/vfs_mount.c
@@ -363,30 +363,16 @@
/*
* Mount a filesystem.
*/
-int
-sys_nmount(td, uap)
- struct thread *td;
- struct nmount_args /* {
- struct iovec *iovp;
- unsigned int iovcnt;
- int flags;
- } */ *uap;
+static int
+kern_nmount(struct thread *td, struct iovec *iovp, unsigned int iovcnt,
+ uint64_t flags)
{
struct uio *auio;
int error;
- u_int iovcnt;
- uint64_t flags;
-
- /*
- * Mount flags are now 64-bits. On 32-bit archtectures only
- * 32-bits are passed in, but from here on everything handles
- * 64-bit flags correctly.
- */
- flags = uap->flags;
AUDIT_ARG_FFLAGS(flags);
CTR4(KTR_VFS, "%s: iovp %p with iovcnt %d and flags %d", __func__,
- uap->iovp, uap->iovcnt, flags);
+ iovp, iovcnt, flags);
/*
* Filter out MNT_ROOTFS. We do not want clients of nmount() in
@@ -397,18 +383,17 @@
*/
flags &= ~MNT_ROOTFS;
- iovcnt = uap->iovcnt;
/*
* Check that we have an even number of iovec's
* and that we have at least two options.
*/
if ((iovcnt & 1) || (iovcnt < 4)) {
CTR2(KTR_VFS, "%s: failed for invalid iovcnt %d", __func__,
- uap->iovcnt);
+ iovcnt);
return (EINVAL);
}
- error = copyinuio(uap->iovp, iovcnt, &auio);
+ error = copyinuio(iovp, iovcnt, &auio);
if (error) {
CTR2(KTR_VFS, "%s: failed for invalid uio op with %d errno",
__func__, error);
@@ -420,6 +405,37 @@
return (error);
}
+int
+sys_nmount(td, uap)
+ struct thread *td;
+ struct nmount_args /* {
+ struct iovec *iovp;
+ unsigned int iovcnt;
+ uint64_t flags;
+ } */ *uap;
+{
+
+ return (kern_nmount(td, uap->iovp, uap->iovcnt, uap->flags));
+}
+
+int
+sys_onmount(td, uap)
+ struct thread *td;
+ struct onmount_args /* {
+ struct iovec *iovp;
+ unsigned int iovcnt;
+ int flags;
+ } */ *uap;
+{
+
+ /*
+ * Mount flags are now 64-bits. On 32-bit archtectures only
+ * 32-bits are passed in, but from here on everything handles
+ * 64-bit flags correctly.
+ */
+ return (kern_nmount(td, uap->iovp, uap->iovcnt, uap->flags));
+}
+
/*
* ---------------------------------------------------------------------
* Various utility functions
Index: sys/sys/syscall.h
===================================================================
--- sys/sys/syscall.h
+++ sys/sys/syscall.h
@@ -312,7 +312,7 @@
#define SYS___setugid 374
#define SYS_eaccess 376
#define SYS_afs3_syscall 377
-#define SYS_nmount 378
+#define SYS_onmount 378
#define SYS___mac_get_proc 384
#define SYS___mac_set_proc 385
#define SYS___mac_get_fd 386
@@ -465,4 +465,5 @@
#define SYS_ppoll 545
#define SYS_futimens 546
#define SYS_utimensat 547
-#define SYS_MAXSYSCALL 548
+#define SYS_nmount 548
+#define SYS_MAXSYSCALL 549
Index: sys/sys/syscall.mk
===================================================================
--- sys/sys/syscall.mk
+++ sys/sys/syscall.mk
@@ -261,7 +261,7 @@
__setugid.o \
eaccess.o \
afs3_syscall.o \
- nmount.o \
+ onmount.o \
__mac_get_proc.o \
__mac_set_proc.o \
__mac_get_fd.o \
@@ -412,4 +412,5 @@
procctl.o \
ppoll.o \
futimens.o \
- utimensat.o
+ utimensat.o \
+ nmount.o
Index: sys/sys/sysproto.h
===================================================================
--- sys/sys/sysproto.h
+++ sys/sys/sysproto.h
@@ -1061,7 +1061,7 @@
char parm5_l_[PADL_(long)]; long parm5; char parm5_r_[PADR_(long)];
char parm6_l_[PADL_(long)]; long parm6; char parm6_r_[PADR_(long)];
};
-struct nmount_args {
+struct onmount_args {
char iovp_l_[PADL_(struct iovec *)]; struct iovec * iovp; char iovp_r_[PADR_(struct iovec *)];
char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
@@ -1790,6 +1790,11 @@
char times_l_[PADL_(struct timespec *)]; struct timespec * times; char times_r_[PADR_(struct timespec *)];
char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
};
+struct nmount_args {
+ char iovp_l_[PADL_(struct iovec *)]; struct iovec * iovp; char iovp_r_[PADR_(struct iovec *)];
+ char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)];
+ char flags_l_[PADL_(uint64_t)]; uint64_t flags; char flags_r_[PADR_(uint64_t)];
+};
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 *);
@@ -2026,7 +2031,7 @@
int sys___setugid(struct thread *, struct __setugid_args *);
int sys_eaccess(struct thread *, struct eaccess_args *);
int sys_afs3_syscall(struct thread *, struct afs3_syscall_args *);
-int sys_nmount(struct thread *, struct nmount_args *);
+int sys_onmount(struct thread *, struct onmount_args *);
int sys___mac_get_proc(struct thread *, struct __mac_get_proc_args *);
int sys___mac_set_proc(struct thread *, struct __mac_set_proc_args *);
int sys___mac_get_fd(struct thread *, struct __mac_get_fd_args *);
@@ -2178,6 +2183,7 @@
int sys_ppoll(struct thread *, struct ppoll_args *);
int sys_futimens(struct thread *, struct futimens_args *);
int sys_utimensat(struct thread *, struct utimensat_args *);
+int sys_nmount(struct thread *, struct nmount_args *);
#ifdef COMPAT_43
@@ -2779,7 +2785,7 @@
#define SYS_AUE___setugid AUE_NULL
#define SYS_AUE_eaccess AUE_EACCESS
#define SYS_AUE_afs3_syscall AUE_NULL
-#define SYS_AUE_nmount AUE_NMOUNT
+#define SYS_AUE_onmount AUE_NMOUNT
#define SYS_AUE___mac_get_proc AUE_NULL
#define SYS_AUE___mac_set_proc AUE_NULL
#define SYS_AUE___mac_get_fd AUE_NULL
@@ -2931,6 +2937,7 @@
#define SYS_AUE_ppoll AUE_POLL
#define SYS_AUE_futimens AUE_FUTIMES
#define SYS_AUE_utimensat AUE_FUTIMESAT
+#define SYS_AUE_nmount AUE_NMOUNT
#undef PAD_
#undef PADL_
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Dec 20, 11:06 AM (10 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27096072
Default Alt Text
D2524.id5348.diff (20 KB)
Attached To
Mode
D2524: Extend the "flags" nmount(2) argument to uint64_t. COMPLETELY UNTESTED.
Attached
Detach File
Event Timeline
Log In to Comment