BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs)

{

    BdrvDirtyBitmap *bm;

    BlockDirtyInfoList *list = NULL;

    BlockDirtyInfoList **plist = &list;



    QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {

        BlockDirtyInfo *info = g_malloc0(sizeof(BlockDirtyInfo));

        BlockDirtyInfoList *entry = g_malloc0(sizeof(BlockDirtyInfoList));

        info->count = bdrv_get_dirty_count(bs, bm);

        info->granularity =

            ((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap));

        entry->value = info;

        *plist = entry;

        plist = &entry->next;

    }



    return list;

}

BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs)

{

    BdrvDirtyBitmap *bm;

    BlockDirtyInfoList *list = NULL;

    BlockDirtyInfoList **plist = &list;



    QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {

        BlockDirtyInfo *info = g_malloc0(sizeof(BlockDirtyInfo));

        BlockDirtyInfoList *entry = g_malloc0(sizeof(BlockDirtyInfoList));

        info->count = bdrv_get_dirty_count(bs, bm);

        info->granularity =

            ((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap));

        entry->value = info;

        *plist = entry;

        plist = &entry->next;

    }



    return list;

}

        BlockDirtyInfo *info = g_malloc0(sizeof(BlockDirtyInfo));         BlockDirtyInfoList *entry = g_malloc0(sizeof(BlockDirtyInfoList));
BlockDirtyInfoList *FUNC_0(BlockDriverState *bs)

{

    BdrvDirtyBitmap *bm;

    BlockDirtyInfoList *list = NULL;

    BlockDirtyInfoList **plist = &list;



    QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {

        BlockDirtyInfo *info = g_malloc0(sizeof(BlockDirtyInfo));

        BlockDirtyInfoList *entry = g_malloc0(sizeof(BlockDirtyInfoList));

        info->count = bdrv_get_dirty_count(bs, bm);

        info->granularity =

            ((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap));

        entry->value = info;

        *plist = entry;

        plist = &entry->next;

    }



    return list;

}

BlockDirtyInfoList *FUNC_0(BlockDriverState *bs)
{ BdrvDirtyBitmap *bm; BlockDirtyInfoList *list = NULL; BlockDirtyInfoList **plist = &list; QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) { BlockDirtyInfo *info = g_malloc0(sizeof(BlockDirtyInfo)); BlockDirtyInfoList *entry = g_malloc0(sizeof(BlockDirtyInfoList)); info->count = bdrv_get_dirty_count(bs, bm); info->granularity =
((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap)); entry->value = info; *plist = entry; plist = &entry->next; } return list; }