Skip to content

Commit

Permalink
osdep: Introduce qemu_dup
Browse files Browse the repository at this point in the history
And use it in qemu_dup_flags.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
Fam Zheng authored and kevmw committed Jul 13, 2016
1 parent 6aae5be commit 761d1dd
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
3 changes: 3 additions & 0 deletions include/qemu/osdep.h
Expand Up @@ -278,6 +278,9 @@ int qemu_madvise(void *addr, size_t len, int advice);

int qemu_open(const char *name, int flags, ...);
int qemu_close(int fd);
#ifndef _WIN32
int qemu_dup(int fd);
#endif

#if defined(__HAIKU__) && defined(__i386__)
#define FMT_pid "%ld"
Expand Down
23 changes: 15 additions & 8 deletions util/osdep.c
Expand Up @@ -83,14 +83,7 @@ static int qemu_dup_flags(int fd, int flags)
int serrno;
int dup_flags;

#ifdef F_DUPFD_CLOEXEC
ret = fcntl(fd, F_DUPFD_CLOEXEC, 0);
#else
ret = dup(fd);
if (ret != -1) {
qemu_set_cloexec(ret);
}
#endif
ret = qemu_dup(fd);
if (ret == -1) {
goto fail;
}
Expand Down Expand Up @@ -129,6 +122,20 @@ static int qemu_dup_flags(int fd, int flags)
return -1;
}

int qemu_dup(int fd)
{
int ret;
#ifdef F_DUPFD_CLOEXEC
ret = fcntl(fd, F_DUPFD_CLOEXEC, 0);
#else
ret = dup(fd);
if (ret != -1) {
qemu_set_cloexec(ret);
}
#endif
return ret;
}

static int qemu_parse_fdset(const char *param)
{
return qemu_parse_fd(param);
Expand Down

0 comments on commit 761d1dd

Please sign in to comment.