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 <nj...@netbsd.org>. + * + * 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); +}