From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58910) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tddle-00047d-17 for qemu-devel@nongnu.org; Wed, 28 Nov 2012 04:17:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tddlc-0003kz-Mt for qemu-devel@nongnu.org; Wed, 28 Nov 2012 04:17:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50182) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tddlc-0003ko-FM for qemu-devel@nongnu.org; Wed, 28 Nov 2012 04:17:16 -0500 Message-ID: <50B5D690.6010909@redhat.com> Date: Wed, 28 Nov 2012 10:17:04 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1354092935-6508-1-git-send-email-xiawenc@linux.vnet.ibm.com> <1354092935-6508-7-git-send-email-xiawenc@linux.vnet.ibm.com> In-Reply-To: <1354092935-6508-7-git-send-email-xiawenc@linux.vnet.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V12 6/7] libqblock API implement List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wenchao Xia Cc: kwolf@redhat.com, stefanha@gmail.com, aliguori@us.ibm.com, qemu-devel@nongnu.org, blauwirbel@gmail.com Almost there... Il 28/11/2012 09:55, Wenchao Xia ha scritto: > +/* This file was only used in libqblock, codes are copied from main-loop.c, > + iohandler.c, compatfd.c now, it may have different implemention in the future. > +*/ No need for this comment. > + > +/* Signal fd support, original codes are from compatfd.c */ > + > bool qemu_signalfd_available(void) > { > return false; I think this stub can instead be placed in stubs/. > +int qb_image_new(QBlockContext *context, > + QBlockImage **p_qbi) > +{ > + *p_qbi = g_malloc0_n(1, sizeof(QBlockImage)); > + (*p_qbi)->bdrvs = bdrv_new("hda"); > + if ((*p_qbi)->bdrvs == NULL) { > + QB_FREE(*p_qbi); > + set_context_err(context, QB_ERR_INTERNAL_ERR, > + "failed to create the driver."); > + return context->err_ret; > + } > + return 0; > +} The first reference should already be provided by qb_image_new. > > +__attribute__((constructor)) > +static void libqblock_init(void) > +{ > + /* Todo: add an assertion about the ABI. */ > + if (libqb_global_data.init_flag == 0) { > + libqblock_runtime_init(); > + libqb_global_data.init_flag = 1; > + } > +} How can this be called with libqb_global_data.init_flag == 1?