#define _GNU_SOURCE
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include "syscall.h"
#include "libc.h"

int __dup3(int old, int new, int flags) {
  int r;
#ifdef SYS_dup2
  if (old == new)
    return __syscall_ret(-EINVAL);
  if (flags & O_CLOEXEC) {
    while ((r = __syscall(SYS_dup3, old, new, flags)) == -EBUSY)
      ;
    if (r != -ENOSYS)
      return __syscall_ret(r);
  }
  while ((r = __syscall(SYS_dup2, old, new)) == -EBUSY)
    ;
  if (flags & O_CLOEXEC)
    __syscall(SYS_fcntl, new, F_SETFD, FD_CLOEXEC);
#else
  while ((r = __syscall(SYS_dup3, old, new, flags)) == -EBUSY)
    ;
#endif
  return __syscall_ret(r);
}

weak_alias(__dup3, dup3);
