int bdrv_snapshot_create(BlockDriverState *bs,

                         QEMUSnapshotInfo *sn_info)

{

    BlockDriver *drv = bs->drv;

    if (!drv)

        return -ENOMEDIUM;

    if (drv->bdrv_snapshot_create)

        return drv->bdrv_snapshot_create(bs, sn_info);

    if (bs->file)

        return bdrv_snapshot_create(bs->file, sn_info);

    return -ENOTSUP;

}

int bdrv_snapshot_create(BlockDriverState *bs,

                         QEMUSnapshotInfo *sn_info)

{

    BlockDriver *drv = bs->drv;

    if (!drv)

        return -ENOMEDIUM;

    if (drv->bdrv_snapshot_create)

        return drv->bdrv_snapshot_create(bs, sn_info);

    if (bs->file)

        return bdrv_snapshot_create(bs->file, sn_info);

    return -ENOTSUP;

}

int FUNC_0(BlockDriverState *VAR_0,

                         QEMUSnapshotInfo *VAR_1)

{

    BlockDriver *drv = VAR_0->drv;

    if (!drv)

        return -ENOMEDIUM;

    if (drv->FUNC_0)

        return drv->FUNC_0(VAR_0, VAR_1);

    if (VAR_0->file)

        return FUNC_0(VAR_0->file, VAR_1);

    return -ENOTSUP;

}

int FUNC_0(BlockDriverState *VAR_0,
QEMUSnapshotInfo *VAR_1)
{ BlockDriver *drv = VAR_0->drv; if (!drv)
return -ENOMEDIUM; if (drv->FUNC_0)
return drv->FUNC_0(VAR_0, VAR_1); if (VAR_0->file)
return FUNC_0(VAR_0->file, VAR_1); return -ENOTSUP; }