osdep: Introduce qemu_dup
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>
This commit is contained in:
parent
6aae5be6a7
commit
761d1ddf25
@ -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"
|
||||
|
23
util/osdep.c
23
util/osdep.c
@ -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;
|
||||
}
|
||||
@ -129,6 +122,20 @@ fail:
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user