From: Mark McLoughlin Date: Wed, 22 Jul 2009 08:11:41 +0000 (+0100) Subject: Add monitor_get_fd() command for fetching named fds X-Git-Tag: v0.11.0-rc1~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9bab7711ca7c3a0daaaaf7d645caa9722bfe7be1;p=thirdparty%2Fqemu.git Add monitor_get_fd() command for fetching named fds Signed-off-by: Mark McLoughlin Signed-off-by: Anthony Liguori --- diff --git a/monitor.c b/monitor.c index 817e4b7ed49..6ad2e14afda 100644 --- a/monitor.c +++ b/monitor.c @@ -1774,6 +1774,30 @@ static void do_closefd(Monitor *mon, const char *fdname) fdname); } +int monitor_get_fd(Monitor *mon, const char *fdname) +{ + mon_fd_t *monfd; + + LIST_FOREACH(monfd, &mon->fds, next) { + int fd; + + if (strcmp(monfd->name, fdname) != 0) { + continue; + } + + fd = monfd->fd; + + /* caller takes ownership of fd */ + LIST_REMOVE(monfd, next); + qemu_free(monfd->name); + qemu_free(monfd); + + return fd; + } + + return -1; +} + static const mon_cmd_t mon_cmds[] = { #include "qemu-monitor.h" { NULL, NULL, }, diff --git a/monitor.h b/monitor.h index 13e8cc7647e..f6a43c01898 100644 --- a/monitor.h +++ b/monitor.h @@ -20,6 +20,8 @@ void monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs, BlockDriverCompletionFunc *completion_cb, void *opaque); +int monitor_get_fd(Monitor *mon, const char *fdname); + void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap); void monitor_printf(Monitor *mon, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3)));