int bdrv_snapshot_list(BlockDriverState *bs,

                       QEMUSnapshotInfo **psn_info)

{

    BlockDriver *drv = bs->drv;

    if (!drv)

        return -ENOMEDIUM;

    if (drv->bdrv_snapshot_list)

        return drv->bdrv_snapshot_list(bs, psn_info);

    if (bs->file)

        return bdrv_snapshot_list(bs->file, psn_info);

    return -ENOTSUP;

}

int bdrv_snapshot_list(BlockDriverState *bs,

                       QEMUSnapshotInfo **psn_info)

{

    BlockDriver *drv = bs->drv;

    if (!drv)

        return -ENOMEDIUM;

    if (drv->bdrv_snapshot_list)

        return drv->bdrv_snapshot_list(bs, psn_info);

    if (bs->file)

        return bdrv_snapshot_list(bs->file, psn_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; }