1 /* $NetBSD: linux_rump.c,v 1.1 2013/12/14 10:29:45 njoly Exp $ */ 2 3 #include <sys/param.h> 4 5 #include <compat/linux/common/linux_types.h> 6 #include <compat/linux/common/linux_signal.h> 7 8 #include "rump_linux_syscallargs.h" 9 10 /* 11 compat/linux/arch/.../syscallargs.h and rump_linux_syscallargs.h 12 define the same syscall arguments and prototypes, thus cannot be 13 both used. Just copy needed linux stuff for now to avoid conflicts. 14 */ 15 16 struct linux_sys_mknodat_args { 17 syscallarg(int) fd; 18 syscallarg(const char *) path; 19 syscallarg(mode_t) mode; 20 syscallarg(unsigned) dev; 21 }; 22 check_syscall_args(linux_sys_mknodat) 23 24 int linux_sys_mknodat(struct lwp *, const struct linux_sys_mknodat_args *, register_t *); 25 26 int 27 rump_linux_sys_mknodat(struct lwp *l, 28 const struct rump_linux_sys_mknodat_args *uap, register_t *retval) 29 { 30 /* { 31 syscallarg(int) fd; 32 syscallarg(const char *) path; 33 syscallarg(mode_t) mode; 34 syscallarg(int) PAD; 35 syscallarg(dev_t) dev; 36 } */ 37 struct linux_sys_mknodat_args ua; 38 39 SCARG(&ua, fd) = SCARG(uap, fd); 40 SCARG(&ua, path) = SCARG(uap, path); 41 SCARG(&ua, mode) = SCARG(uap, mode); 42 SCARG(&ua, dev) = SCARG(uap, dev); 43 44 return linux_sys_mknodat(l, &ua, retval); 45 } 46