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?