From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=49733 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PzoEt-0004aW-7g for qemu-devel@nongnu.org; Wed, 16 Mar 2011 06:46:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PzoEr-0002QO-HH for qemu-devel@nongnu.org; Wed, 16 Mar 2011 06:46:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:4372) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PzoEr-0002QB-7V for qemu-devel@nongnu.org; Wed, 16 Mar 2011 06:46:01 -0400 From: Kevin Wolf Date: Wed, 16 Mar 2011 11:47:56 +0100 Message-Id: <1300272481-8744-5-git-send-email-kwolf@redhat.com> In-Reply-To: <1300272481-8744-1-git-send-email-kwolf@redhat.com> References: <1300272481-8744-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 4/9] tools: Use real async.c instead of stubs List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@codemonkey.ws Cc: kwolf@redhat.com, qemu-devel@nongnu.org It's wrong to call BHs directly, even in tools. The only operations that schedule BHs are called in a loop that (indirectly) contains a call to qemu_bh_poll anyway, so we're not losing the scheduled BHs: Tools either use synchronous functions, which are guaranteed to have completed (including any BHs) when they return; or if they use asynchronous functions, they need to call qemu_aio_wait() or similar functions already today. Signed-off-by: Kevin Wolf Reviewed-by: Stefan Hajnoczi --- Makefile.objs | 4 ++-- qemu-tool.c | 47 ++++------------------------------------------- 2 files changed, 6 insertions(+), 45 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index a52f42f..167ccc2 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -13,7 +13,7 @@ oslib-obj-$(CONFIG_POSIX) += oslib-posix.o ####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img -block-obj-y = cutils.o cache-utils.o qemu-malloc.o qemu-option.o module.o +block-obj-y = cutils.o cache-utils.o qemu-malloc.o qemu-option.o module.o async.o block-obj-y += nbd.o block.o aio.o aes.o qemu-config.o block-obj-$(CONFIG_POSIX) += posix-aio-compat.o block-obj-$(CONFIG_LINUX_AIO) += linux-aio.o @@ -63,7 +63,7 @@ common-obj-y = $(block-obj-y) blockdev.o common-obj-y += $(net-obj-y) common-obj-y += $(qobject-obj-y) common-obj-$(CONFIG_LINUX) += $(fsdev-obj-$(CONFIG_LINUX)) -common-obj-y += readline.o console.o cursor.o async.o qemu-error.o +common-obj-y += readline.o console.o cursor.o qemu-error.o common-obj-y += $(oslib-obj-y) common-obj-$(CONFIG_WIN32) += os-win32.o common-obj-$(CONFIG_POSIX) += os-posix.o diff --git a/qemu-tool.c b/qemu-tool.c index 392e1c9..d45840d 100644 --- a/qemu-tool.c +++ b/qemu-tool.c @@ -56,53 +56,10 @@ void monitor_print_filename(Monitor *mon, const char *filename) { } -void async_context_push(void) -{ -} - -void async_context_pop(void) -{ -} - -int get_async_context_id(void) -{ - return 0; -} - void monitor_protocol_event(MonitorEvent event, QObject *data) { } -QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque) -{ - QEMUBH *bh; - - bh = qemu_malloc(sizeof(*bh)); - bh->cb = cb; - bh->opaque = opaque; - - return bh; -} - -int qemu_bh_poll(void) -{ - return 0; -} - -void qemu_bh_schedule(QEMUBH *bh) -{ - bh->cb(bh->opaque); -} - -void qemu_bh_cancel(QEMUBH *bh) -{ -} - -void qemu_bh_delete(QEMUBH *bh) -{ - qemu_free(bh); -} - int qemu_set_fd_handler2(int fd, IOCanReadHandler *fd_read_poll, IOHandler *fd_read, @@ -111,3 +68,7 @@ int qemu_set_fd_handler2(int fd, { return 0; } + +void qemu_notify_event(void) +{ +} -- 1.7.2.3