Module Name: src Committed By: njoly Date: Fri Jan 10 19:44:47 UTC 2014
Modified Files: src/sys/rump/kern/lib/libsys_linux: linux_rump.c syscalls.master Log Message: Do not redefine linux syscalls arguments, just use compat ones instead. Include linux_socketcall.h to bring missing socket syscall arguments/prototypes on arches that have socketcall(2). Finally, cleanup rump linux syscall wrapper, to remove linux syscall argument/prototype local copy. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/rump/kern/lib/libsys_linux/linux_rump.c cvs rdiff -u -r1.10 -r1.11 src/sys/rump/kern/lib/libsys_linux/syscalls.master Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/kern/lib/libsys_linux/linux_rump.c diff -u src/sys/rump/kern/lib/libsys_linux/linux_rump.c:1.1 src/sys/rump/kern/lib/libsys_linux/linux_rump.c:1.2 --- src/sys/rump/kern/lib/libsys_linux/linux_rump.c:1.1 Sat Dec 14 10:29:45 2013 +++ src/sys/rump/kern/lib/libsys_linux/linux_rump.c Fri Jan 10 19:44:47 2014 @@ -1,28 +1,13 @@ -/* $NetBSD: linux_rump.c,v 1.1 2013/12/14 10:29:45 njoly Exp $ */ +/* $NetBSD: linux_rump.c,v 1.2 2014/01/10 19:44:47 njoly Exp $ */ #include <sys/param.h> #include <compat/linux/common/linux_types.h> #include <compat/linux/common/linux_signal.h> +#include <compat/linux/linux_syscallargs.h> #include "rump_linux_syscallargs.h" -/* - compat/linux/arch/.../syscallargs.h and rump_linux_syscallargs.h - define the same syscall arguments and prototypes, thus cannot be - both used. Just copy needed linux stuff for now to avoid conflicts. -*/ - -struct linux_sys_mknodat_args { - syscallarg(int) fd; - syscallarg(const char *) path; - syscallarg(mode_t) mode; - syscallarg(unsigned) dev; -}; -check_syscall_args(linux_sys_mknodat) - -int linux_sys_mknodat(struct lwp *, const struct linux_sys_mknodat_args *, register_t *); - int rump_linux_sys_mknodat(struct lwp *l, const struct rump_linux_sys_mknodat_args *uap, register_t *retval) Index: src/sys/rump/kern/lib/libsys_linux/syscalls.master diff -u src/sys/rump/kern/lib/libsys_linux/syscalls.master:1.10 src/sys/rump/kern/lib/libsys_linux/syscalls.master:1.11 --- src/sys/rump/kern/lib/libsys_linux/syscalls.master:1.10 Sat Dec 14 17:34:47 2013 +++ src/sys/rump/kern/lib/libsys_linux/syscalls.master Fri Jan 10 19:44:47 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.10 2013/12/14 17:34:47 njoly Exp $ + $NetBSD: syscalls.master,v 1.11 2014/01/10 19:44:47 njoly Exp $ ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -34,6 +34,12 @@ #include <compat/linux/common/linux_types.h> #include <compat/linux/common/linux_signal.h> +#include <compat/linux/linux_syscallargs.h> +#include <compat/linux/linux_syscall.h> + +#ifdef LINUX_SYS_socketcall +#include <compat/linux/common/linux_socketcall.h> +#endif #include "rump_linux_syscallargs.h" @@ -45,13 +51,13 @@ 3 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 4 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ size_t nbyte); } -5 NODEF { int|linux_sys||open(const char *path, \ +5 NOARGS { int|linux_sys||open(const char *path, \ int flags, int mode); } 6 NOARGS { int|sys||close(int fd); } 7 UNIMPL wait4 8 UNIMPL creat 9 NOARGS { int|sys||link(const char *path, const char *link); } -10 NODEF { int|linux_sys||unlink(const char *path); } +10 NOARGS { int|linux_sys||unlink(const char *path); } 11 UNIMPL execv 12 NOARGS { int|sys||chdir(const char *path); } 13 NOARGS { int|sys||fchdir(int fd); } @@ -69,18 +75,18 @@ 24 NOARGS { uid_t|sys||getuid_with_euid(void); } getuid 25 NOARGS { uid_t|sys||geteuid(void); } 26 UNIMPL ptrace -27 NODEF { ssize_t|linux_sys||recvmsg(int s, \ +27 NOARGS { ssize_t|linux_sys||recvmsg(int s, \ struct linux_msghdr *msg, int flags); } -28 NODEF { ssize_t|linux_sys||sendmsg(int s, \ +28 NOARGS { ssize_t|linux_sys||sendmsg(int s, \ const struct linux_msghdr *msg, int flags); } -29 NODEF { ssize_t|linux_sys||recvfrom(int s, void *buf, \ +29 NOARGS { ssize_t|linux_sys||recvfrom(int s, void *buf, \ int len, int flags, struct osockaddr *from, \ int *fromlenaddr); } -30 NODEF { int|linux_sys||accept(int s, struct osockaddr *name, \ +30 NOARGS { int|linux_sys||accept(int s, struct osockaddr *name, \ int *anamelen); } -31 NODEF { int|linux_sys||getpeername(int fdes, \ +31 NOARGS { int|linux_sys||getpeername(int fdes, \ struct osockaddr *asa, int *alen); } -32 NODEF { int|linux_sys||getsockname(int fdes, \ +32 NOARGS { int|linux_sys||getsockname(int fdes, \ struct osockaddr *asa, int *alen); } 33 NOARGS { int|sys||access(const char *path, int flags); } 34 UNIMPL chflags @@ -106,7 +112,7 @@ 51 UNIMPL acct 52 UNIMPL sigpending 53 UNIMPL sigaltstack -54 NODEF { int|linux_sys||ioctl(int fd, \ +54 NOARGS { int|linux_sys||ioctl(int fd, \ u_long com, void *data); } 55 UNIMPL reboot 56 UNIMPL revoke @@ -149,13 +155,13 @@ 89 UNIMPL getdtablesize 90 NOARGS { int|sys||dup2(int from, int to); } 91 UNIMPL getdopt -92 NODEF { int|linux_sys||fcntl(int fd, int cmd, void *arg); } +92 NOARGS { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 93 UNIMPL select 94 UNIMPL setdopt 95 NOARGS { int|sys||fsync(int fd); } 96 UNIMPL setpriority 97 UNIMPL socket -98 NODEF { int|linux_sys||connect(int s, \ +98 NOARGS { int|linux_sys||connect(int s, \ const struct osockaddr *name, \ unsigned int namelen); } 99 UNIMPL accept @@ -165,9 +171,9 @@ 102 UNIMPL recv 103 UNIMPL sigreturn -104 NODEF { int|linux_sys||bind(int s, \ +104 NOARGS { int|linux_sys||bind(int s, \ const struct osockaddr *name, unsigned namelen); } -105 NODEF { int|linux_sys||setsockopt(int s, int level, \ +105 NOARGS { int|linux_sys||setsockopt(int s, int level, \ int name, const void *val, int optlen); } 106 NOARGS { int|sys||listen(int s, int backlog); } 107 UNIMPL vtimes @@ -181,7 +187,7 @@ 115 UNIMPL vtrace 116 UNIMPL gettimeofday 117 UNIMPL getrusage -118 NODEF { int|linux_sys||getsockopt(int s, int level, \ +118 NOARGS { int|linux_sys||getsockopt(int s, int level, \ int name, void *val, int *avalsize); } 119 UNIMPL resuba 120 NOARGS { ssize_t|sys||readv(int fd, \ @@ -200,11 +206,11 @@ 130 UNIMPL oftruncate 131 NOARGS { int|sys||flock(int fd, int how); } 132 UNIMPL mkfifo -133 NODEF { int|linux_sys||sendto(int s, void *buf, \ +133 NOARGS { int|linux_sys||sendto(int s, void *buf, \ int len, int flags, const struct osockaddr *to, \ int tolen); } 134 NOARGS { int|sys||shutdown(int s, int how); } -135 NODEF { int|linux_sys||socketpair(int domain, int type, \ +135 NOARGS { int|linux_sys||socketpair(int domain, int type, \ int protocol, int *rsv); } 136 NOARGS { int|sys||mkdir(const char *path, mode_t mode); } 137 NOARGS { int|sys||rmdir(const char *path); } @@ -274,9 +280,9 @@ 191 UNIMPL pathconf 192 UNIMPL fpathconf 193 UNIMPL -194 NODEF { int|linux_sys||getrlimit(int which, \ +194 NOARGS { int|linux_sys||getrlimit(int which, \ struct orlimit *rlp); } -195 NODEF { int|linux_sys||setrlimit(int which, \ +195 NOARGS { int|linux_sys||setrlimit(int which, \ const struct orlimit *rlp); } 196 UNIMPL getdirentries 197 UNIMPL mmap @@ -333,7 +339,7 @@ ; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls ; 240 UNIMPL nanosleep -241 NODEF { int|linux_sys||fdatasync(int fd); } +241 NOARGS { int|linux_sys||fdatasync(int fd); } 242 UNIMPL mlockall 243 UNIMPL munlockall 244 UNIMPL __sigtimedwait @@ -498,12 +504,12 @@ 387 UNIMPL stat30 388 UNIMPL fstat30 389 UNIMPL lstat30 -390 NODEF { int|linux_sys||getdents64(int fd, \ +390 NOARGS { int|linux_sys||getdents64(int fd, \ struct linux_dirent64 *dent, unsigned int count); } 391 UNIMPL old posix_fadvise 392 UNIMPL fhstat 393 UNIMPL ntp_gettime -394 NODEF { int|linux_sys||socket(int domain, \ +394 NOARGS { int|linux_sys||socket(int domain, \ int type, int protocol); } 395 UNIMPL getfh 396 UNIMPL fhopen @@ -533,12 +539,12 @@ 414 UNIMPL pset_assign 415 UNIMPL _pset_bind 416 UNIMPL fadvise -417 NODEF { int|linux_sys||select(int nd, \ +417 NOARGS { int|linux_sys||select(int nd, \ fd_set *in, fd_set *ou, fd_set *ex, \ struct timeval50 *tv); } 418 UNIMPL gettimeofday 419 UNIMPL settimeofday -420 NODEF { int|linux_sys||utimes(const char *path, \ +420 NOARGS { int|linux_sys||utimes(const char *path, \ struct linux_timeval *tv); } 421 UNIMPL adjtime 422 UNIMPL lfs_segwait @@ -556,15 +562,15 @@ 434 UNIMPL _lwp_park 435 UNIMPL kevent 436 UNIMPL pselect -437 NODEF { int|linux_sys||ppoll(struct pollfd *fds, \ +437 NOARGS { int|linux_sys||ppoll(struct pollfd *fds, \ u_int nfds, const struct linux_timespec *timeout, \ const linux_sigset_t *mask);} 438 UNIMPL aio_suspend -439 NODEF { int|linux_sys||stat64(const char *path, \ +439 NOARGS { int|linux_sys||stat64(const char *path, \ struct linux_stat64 *sp); } -440 NODEF { int|linux_sys||fstat64(int fd, \ +440 NOARGS { int|linux_sys||fstat64(int fd, \ struct linux_stat64 *sp); } -441 NODEF { int|linux_sys||lstat64(const char *path, \ +441 NOARGS { int|linux_sys||lstat64(const char *path, \ struct linux_stat64 *sp); } 442 UNIMPL __semctl 443 UNIMPL shmctl @@ -574,17 +580,17 @@ 447 UNIMPL timer_gettime 448 UNIMPL ntp_gettime 449 UNIMPL wait4 -450 NODEF { int|linux_sys||mknod(const char *path, mode_t mode, \ +450 NOARGS { int|linux_sys||mknod(const char *path, mode_t mode, \ int dev); } 451 UNIMPL fhstat ; 452 only ever appeared in 5.99.x and can be reused after netbsd-7 452 UNIMPL 5.99 quotactl 453 UNIMPL pipe2 -454 NODEF { int|linux_sys||dup3(int from, int to, int flags); } +454 NOARGS { int|linux_sys||dup3(int from, int to, int flags); } 455 UNIMPL kqueue1 456 UNIMPL paccept -457 NODEF { int|linux_sys||linkat(int fd1, const char *name1, \ +457 NOARGS { int|linux_sys||linkat(int fd1, const char *name1, \ int fd2, const char *name2, int flags); } 458 NOARGS { int|sys||renameat(int fromfd, const char *from, \ int tofd, const char *to); } @@ -593,24 +599,24 @@ mode_t mode, int PAD, unsigned dev); } 461 NOARGS { int|sys||mkdirat(int fd, const char *path, \ mode_t mode); } -462 NODEF { int|linux_sys||faccessat(int fd, const char *path, \ +462 NOARGS { int|linux_sys||faccessat(int fd, const char *path, \ int amode); } -463 NODEF { int|linux_sys||fchmodat(int fd, const char *path, \ +463 NOARGS { int|linux_sys||fchmodat(int fd, const char *path, \ mode_t mode); } -464 NODEF { int|linux_sys||fchownat(int fd, const char *path, \ +464 NOARGS { int|linux_sys||fchownat(int fd, const char *path, \ uid_t owner, gid_t group, int flag); } 465 UNIMPL fexecve -466 NODEF { int|linux_sys||fstatat64(int fd, const char *path, \ +466 NOARGS { int|linux_sys||fstatat64(int fd, const char *path, \ struct linux_stat *sp, int flag); } -467 NODEF { int|linux_sys||utimensat(int fd, const char *path, \ +467 NOARGS { int|linux_sys||utimensat(int fd, const char *path, \ struct linux_timespec *times, int flag); } -468 NODEF { int|linux_sys||openat(int fd, const char *path, \ +468 NOARGS { int|linux_sys||openat(int fd, const char *path, \ int flags, ... mode_t mode); } 469 NOARGS { int|sys||readlinkat(int fd, const char *path, \ char *buf, size_t bufsize); } 470 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ const char *path2); } -471 NODEF { int|linux_sys||unlinkat(int fd, const char *path, \ +471 NOARGS { int|linux_sys||unlinkat(int fd, const char *path, \ int flag); } 472 UNIMPL futimens 473 UNIMPL __quotactl