Module Name: src
Committed By: njoly
Date: Thu Oct 17 18:01:11 UTC 2013
Modified Files:
src/lib/libc/sys: Makefile.inc
src/sys/compat/netbsd32: netbsd32_fs.c syscalls.master
src/sys/kern: syscalls.master vfs_syscalls.c
src/sys/sys: stat.h
Added Files:
src/lib/libc/sys: mknodat.c
Log Message:
Change mknodat(2) device argument type from uint32_t to dev_t.
Adds needed extra PAD argument for 64bit alignment, and libc wrapper.
To generate a diff of this commit:
cvs rdiff -u -r1.219 -r1.220 src/lib/libc/sys/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/lib/libc/sys/mknodat.c
cvs rdiff -u -r1.68 -r1.69 src/sys/compat/netbsd32/netbsd32_fs.c
cvs rdiff -u -r1.97 -r1.98 src/sys/compat/netbsd32/syscalls.master
cvs rdiff -u -r1.263 -r1.264 src/sys/kern/syscalls.master
cvs rdiff -u -r1.467 -r1.468 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.67 -r1.68 src/sys/sys/stat.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/sys/Makefile.inc
diff -u src/lib/libc/sys/Makefile.inc:1.219 src/lib/libc/sys/Makefile.inc:1.220
--- src/lib/libc/sys/Makefile.inc:1.219 Fri Mar 29 02:10:53 2013
+++ src/lib/libc/sys/Makefile.inc Thu Oct 17 18:01:11 2013
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.219 2013/03/29 02:10:53 christos Exp $
+# $NetBSD: Makefile.inc,v 1.220 2013/10/17 18:01:11 njoly Exp $
# @(#)Makefile.inc 8.3 (Berkeley) 10/24/94
# sys sources
@@ -31,7 +31,7 @@ SRCS+= posix_fadvise.c posix_madvise.c s
# glue to provide compatibility between GCC 1.X and 2.X and for compat
# with old syscall interfaces.
GLUE+= ftruncate.c lseek.c mmap.c pread.c preadv.c pwrite.c \
- pwritev.c truncate.c ntp_adjtime.c
+ pwritev.c truncate.c ntp_adjtime.c mknodat.c
GLUE50+= adjtime.c clock_settime.c settimeofday.c
@@ -108,7 +108,7 @@ ASM= access.S acct.S \
_lwp_wakeup.S _lwp_detach.S _lwp_setprivate.S \
_lwp_setname.S _lwp_getname.S _lwp_ctl.S \
madvise.S mincore.S minherit.S mkdir.S mkdirat.S mkfifo.S mkfifoat.S \
- __mknod50.S mknodat.S mlock.S mlockall.S modctl.S __mount50.S \
+ __mknod50.S mlock.S mlockall.S modctl.S __mount50.S \
mprotect.S __msgctl50.S msgget.S munlock.S munlockall.S \
munmap.S \
nfssvc.S __ntp_gettime50.S \
Index: src/sys/compat/netbsd32/netbsd32_fs.c
diff -u src/sys/compat/netbsd32/netbsd32_fs.c:1.68 src/sys/compat/netbsd32/netbsd32_fs.c:1.69
--- src/sys/compat/netbsd32/netbsd32_fs.c:1.68 Tue Jul 30 17:22:31 2013
+++ src/sys/compat/netbsd32/netbsd32_fs.c Thu Oct 17 18:01:11 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_fs.c,v 1.68 2013/07/30 17:22:31 njoly Exp $ */
+/* $NetBSD: netbsd32_fs.c,v 1.69 2013/10/17 18:01:11 njoly Exp $ */
/*
* Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.68 2013/07/30 17:22:31 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_fs.c,v 1.69 2013/10/17 18:01:11 njoly Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1063,13 +1063,15 @@ netbsd32_mknodat(struct lwp *l, const st
syscallarg(int) fd;
syscallarg(netbsd32_charp) path;
syscallarg(mode_t) mode;
- syscallarg(uint32_t) dev;
+ syscallarg(int) pad;
+ syscallarg(netbsd32_dev_t) dev;
} */
struct sys_mknodat_args ua;
NETBSD32TO64_UAP(fd);
NETBSD32TOP_UAP(path, const char);
NETBSD32TO64_UAP(mode);
+ NETBSD32TO64_UAP(PAD);
NETBSD32TO64_UAP(dev);
return sys_mknodat(l, &ua, retval);
Index: src/sys/compat/netbsd32/syscalls.master
diff -u src/sys/compat/netbsd32/syscalls.master:1.97 src/sys/compat/netbsd32/syscalls.master:1.98
--- src/sys/compat/netbsd32/syscalls.master:1.97 Fri Mar 29 01:04:30 2013
+++ src/sys/compat/netbsd32/syscalls.master Thu Oct 17 18:01:11 2013
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.97 2013/03/29 01:04:30 christos Exp $
+ $NetBSD: syscalls.master,v 1.98 2013/10/17 18:01:11 njoly Exp $
; from: NetBSD: syscalls.master,v 1.81 1998/07/05 08:49:50 jonathan Exp
; @(#)syscalls.master 8.2 (Berkeley) 1/13/94
@@ -976,8 +976,8 @@
mode_t mode); }
460 STD { int|netbsd32||mknodat(int fd, \
const netbsd32_charp path, \
- mode_t mode, \
- uint32_t dev); }
+ mode_t mode, int PAD, \
+ netbsd32_dev_t dev); }
461 STD { int|netbsd32||mkdirat(int fd, \
const netbsd32_charp path, \
mode_t mode); }
Index: src/sys/kern/syscalls.master
diff -u src/sys/kern/syscalls.master:1.263 src/sys/kern/syscalls.master:1.264
--- src/sys/kern/syscalls.master:1.263 Fri Aug 30 10:33:10 2013
+++ src/sys/kern/syscalls.master Thu Oct 17 18:01:11 2013
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.263 2013/08/30 10:33:10 pooka Exp $
+ $NetBSD: syscalls.master,v 1.264 2013/10/17 18:01:11 njoly Exp $
; @(#)syscalls.master 8.2 (Berkeley) 1/13/94
@@ -902,7 +902,7 @@
459 STD RUMP { int|sys||mkfifoat(int fd, const char *path, \
mode_t mode); }
460 STD RUMP { int|sys||mknodat(int fd, const char *path, \
- mode_t mode, uint32_t dev); }
+ mode_t mode, int PAD, dev_t dev); }
461 STD RUMP { int|sys||mkdirat(int fd, const char *path, \
mode_t mode); }
462 STD RUMP { int|sys||faccessat(int fd, const char *path, \
Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.467 src/sys/kern/vfs_syscalls.c:1.468
--- src/sys/kern/vfs_syscalls.c:1.467 Sat Jul 20 15:55:57 2013
+++ src/sys/kern/vfs_syscalls.c Thu Oct 17 18:01:11 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.c,v 1.467 2013/07/20 15:55:57 njoly Exp $ */
+/* $NetBSD: vfs_syscalls.c,v 1.468 2013/10/17 18:01:11 njoly Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.467 2013/07/20 15:55:57 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.468 2013/10/17 18:01:11 njoly Exp $");
#ifdef _KERNEL_OPT
#include "opt_fileassoc.h"
@@ -2162,7 +2162,8 @@ sys_mknodat(struct lwp *l, const struct
syscallarg(int) fd;
syscallarg(const char *) path;
syscallarg(mode_t) mode;
- syscallarg(uint32_t) dev;
+ syscallarg(int) pad;
+ syscallarg(dev_t) dev;
} */
return do_sys_mknodat(l, SCARG(uap, fd), SCARG(uap, path),
Index: src/sys/sys/stat.h
diff -u src/sys/sys/stat.h:1.67 src/sys/sys/stat.h:1.68
--- src/sys/sys/stat.h:1.67 Wed Oct 9 09:38:21 2013
+++ src/sys/sys/stat.h Thu Oct 17 18:01:11 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: stat.h,v 1.67 2013/10/09 09:38:21 njoly Exp $ */
+/* $NetBSD: stat.h,v 1.68 2013/10/17 18:01:11 njoly Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@@ -278,7 +278,7 @@ int fchmodat(int, const char *, mode
int fstatat(int, const char *, struct stat *, int);
int mkdirat(int, const char *, mode_t);
int mkfifoat(int, const char *, mode_t);
-int mknodat(int, const char *, mode_t, uint32_t);
+int mknodat(int, const char *, mode_t, dev_t);
int utimensat(int, const char *, const struct timespec *, int);
#endif
Added files:
Index: src/lib/libc/sys/mknodat.c
diff -u /dev/null src/lib/libc/sys/mknodat.c:1.1
--- /dev/null Thu Oct 17 18:01:11 2013
+++ src/lib/libc/sys/mknodat.c Thu Oct 17 18:01:11 2013
@@ -0,0 +1,41 @@
+/* $NetBSD: mknodat.c,v 1.1 2013/10/17 18:01:11 njoly Exp $ */
+
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Nicolas Joly <[email protected]>.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/syscall.h>
+#include <sys/stat.h>
+
+int __mknodat(int, const char *, mode_t, int, dev_t);
+
+int
+mknodat(int fd, const char *path, mode_t mode, dev_t dev)
+{
+ return __mknodat(fd, path, mode, 0, dev);
+}