int sys_dup2(struct lwp *l, const struct sys_dup2_args *uap, register_t *retval) { /* { syscallarg(int) from; syscallarg(int) to; } */ return dodup(l, SCARG(uap, from), SCARG(uap, to), 0, retval); }
int linux_sys_dup3(struct lwp *l, const struct linux_sys_dup3_args *uap, register_t *retval) { /* { syscallarg(int) from; syscallarg(int) to; syscallarg(int) flags; } */ int flags; flags = linux_to_bsd_ioflags(SCARG(uap, flags)); if ((flags & ~O_CLOEXEC) != 0) return EINVAL; if (SCARG(uap, from) == SCARG(uap, to)) return EINVAL; return dodup(l, SCARG(uap, from), SCARG(uap, to), flags, retval); }