aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/compat/freebsd32/freebsd32_misc.c17
-rw-r--r--sys/compat/freebsd32/syscalls.master17
-rw-r--r--sys/kern/syscalls.master2
3 files changed, 16 insertions, 20 deletions
diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c
index 0080a45a7fcc..3c2cdec819b0 100644
--- a/sys/compat/freebsd32/freebsd32_misc.c
+++ b/sys/compat/freebsd32/freebsd32_misc.c
@@ -463,25 +463,14 @@ freebsd32_fexecve(struct thread *td, struct freebsd32_fexecve_args *uap)
return (error);
}
-#if defined(COMPAT_FREEBSD11)
-int
-freebsd11_freebsd32_mknod(struct thread *td,
- struct freebsd11_freebsd32_mknod_args *uap)
-{
-
- return (kern_mknodat(td, AT_FDCWD, uap->path, UIO_USERSPACE, uap->mode,
- uap->dev));
-}
int
-freebsd11_freebsd32_mknodat(struct thread *td,
- struct freebsd11_freebsd32_mknodat_args *uap)
+freebsd32_mknodat(struct thread *td, struct freebsd32_mknodat_args *uap)
{
- return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE, uap->mode,
- uap->dev));
+ return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE,
+ uap->mode, PAIR32TO64(dev_t, uap->dev)));
}
-#endif /* COMPAT_FREEBSD11 */
int
freebsd32_mprotect(struct thread *td, struct freebsd32_mprotect_args *uap)
diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master
index 3fc446964d95..c7d53ff7675d 100644
--- a/sys/compat/freebsd32/syscalls.master
+++ b/sys/compat/freebsd32/syscalls.master
@@ -84,8 +84,8 @@
11 AUE_NULL OBSOL execv
12 AUE_CHDIR NOPROTO { int chdir(const char *path); }
13 AUE_FCHDIR NOPROTO { int fchdir(int fd); }
-14 AUE_MKNOD COMPAT11 { int freebsd32_mknod(const char *path, \
- int mode, int dev); }
+14 AUE_MKNOD COMPAT11|NOPROTO { int mknod(const char *path, \
+ int mode, uint32_t dev); }
15 AUE_CHMOD NOPROTO { int chmod(const char *path, mode_t mode); }
16 AUE_CHOWN NOPROTO { int chown(const char *path, int uid, int gid); }
17 AUE_NULL NOPROTO { void *break(char *nsize); }
@@ -958,7 +958,7 @@
mode_t mode); }
497 AUE_MKFIFOAT NOPROTO { int mkfifoat(int fd, const char *path, \
mode_t mode); }
-498 AUE_MKNODAT COMPAT11 { int freebsd32_mknodat(int fd, \
+498 AUE_MKNODAT COMPAT11|NOPROTO { int mknodat(int fd, \
const char *path, mode_t mode, \
uint32_t dev); }
499 AUE_OPENAT_RWTC NOPROTO { int openat(int fd, const char *path, \
@@ -1113,8 +1113,15 @@
long bufsize, int mode); }
558 AUE_FHSTATFS NOPROTO { int fhstatfs(const struct fhandle *u_fhp, \
struct statfs32 *buf); }
-559 AUE_MKNODAT NOPROTO { int mknodat(int fd, const char *path, \
- mode_t mode, dev_t dev); }
+#ifdef PAD64_REQUIRED
+559 AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \
+ const char *path, mode_t mode, \
+ int pad, uint32_t dev1, uint32_t dev2); }
+#else
+559 AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \
+ const char *path, mode_t mode, \
+ uint32_t dev1, uint32_t dev2); }
+#endif
560 AUE_KEVENT STD { int freebsd32_kevent(int fd, \
const struct kevent32 *changelist, \
int nchanges, \
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index 3756bf5c797c..384f297dac27 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -163,7 +163,7 @@
int mknod(
_In_z_ const char *path,
int mode,
- int dev
+ uint32_t dev
);
}
15 AUE_CHMOD STD {