From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MOYan-0003AC-AE for qemu-devel@nongnu.org; Wed, 08 Jul 2009 10:57:53 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MOYai-00032N-6D for qemu-devel@nongnu.org; Wed, 08 Jul 2009 10:57:52 -0400 Received: from [199.232.76.173] (port=56155 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MOYah-000327-UN for qemu-devel@nongnu.org; Wed, 08 Jul 2009 10:57:48 -0400 Received: from mail25.svc.cra.dublin.eircom.net ([159.134.118.54]:30971) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1MOYah-0000YD-FM for qemu-devel@nongnu.org; Wed, 08 Jul 2009 10:57:47 -0400 From: Mark McLoughlin Date: Wed, 8 Jul 2009 15:57:27 +0100 Message-Id: <1247065048-15706-4-git-send-email-markmc@redhat.com> In-Reply-To: <1247065048-15706-3-git-send-email-markmc@redhat.com> References: <1247064963.3270.63.camel@blaa> <1247065048-15706-1-git-send-email-markmc@redhat.com> <1247065048-15706-2-git-send-email-markmc@redhat.com> <1247065048-15706-3-git-send-email-markmc@redhat.com> Subject: [Qemu-devel] [PATCH 4/5] Add monitor_get_fd() command for fetching named fds List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Mark McLoughlin Signed-off-by: Mark McLoughlin --- monitor.c | 24 ++++++++++++++++++++++++ monitor.h | 2 ++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/monitor.c b/monitor.c index 85fa137..38e0da5 100644 --- a/monitor.c +++ b/monitor.c @@ -1746,6 +1746,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 13e8cc7..f6a43c0 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))); -- 1.6.2.5