static int blkdebug_debug_remove_breakpoint(BlockDriverState *bs,

                                            const char *tag)

{

    BDRVBlkdebugState *s = bs->opaque;

    BlkdebugSuspendedReq *r, *r_next;

    BlkdebugRule *rule, *next;

    int i, ret = -ENOENT;



    for (i = 0; i < BLKDBG__MAX; i++) {

        QLIST_FOREACH_SAFE(rule, &s->rules[i], next, next) {

            if (rule->action == ACTION_SUSPEND &&

                !strcmp(rule->options.suspend.tag, tag)) {

                remove_rule(rule);

                ret = 0;

            }

        }

    }

    QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, r_next) {

        if (!strcmp(r->tag, tag)) {

            qemu_coroutine_enter(r->co, NULL);

            ret = 0;

        }

    }

    return ret;

}

static int blkdebug_debug_remove_breakpoint(BlockDriverState *bs,

                                            const char *tag)

{

    BDRVBlkdebugState *s = bs->opaque;

    BlkdebugSuspendedReq *r, *r_next;

    BlkdebugRule *rule, *next;

    int i, ret = -ENOENT;



    for (i = 0; i < BLKDBG__MAX; i++) {

        QLIST_FOREACH_SAFE(rule, &s->rules[i], next, next) {

            if (rule->action == ACTION_SUSPEND &&

                !strcmp(rule->options.suspend.tag, tag)) {

                remove_rule(rule);

                ret = 0;

            }

        }

    }

    QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, r_next) {

        if (!strcmp(r->tag, tag)) {

            qemu_coroutine_enter(r->co, NULL);

            ret = 0;

        }

    }

    return ret;

}

            qemu_coroutine_enter(r->co, NULL);             qemu_coroutine_enter(r->co, NULL);
static int FUNC_0(BlockDriverState *VAR_0,

                                            const char *VAR_1)

{

    BDRVBlkdebugState *s = VAR_0->opaque;

    BlkdebugSuspendedReq *r, *r_next;

    BlkdebugRule *rule, *next;

    int VAR_2, VAR_3 = -ENOENT;



    for (VAR_2 = 0; VAR_2 < BLKDBG__MAX; VAR_2++) {

        QLIST_FOREACH_SAFE(rule, &s->rules[VAR_2], next, next) {

            if (rule->action == ACTION_SUSPEND &&

                !strcmp(rule->options.suspend.VAR_1, VAR_1)) {

                remove_rule(rule);

                VAR_3 = 0;

            }

        }

    }

    QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, r_next) {

        if (!strcmp(r->VAR_1, VAR_1)) {

            qemu_coroutine_enter(r->co, NULL);

            VAR_3 = 0;

        }

    }

    return VAR_3;

}

static int FUNC_0(BlockDriverState *VAR_0,
const char *VAR_1)
{ BDRVBlkdebugState *s = VAR_0->opaque; BlkdebugSuspendedReq *r, *r_next; BlkdebugRule *rule, *next; int VAR_2, VAR_3 = -ENOENT; for (VAR_2 = 0; VAR_2 < BLKDBG__MAX; VAR_2++) { QLIST_FOREACH_SAFE(rule, &s->rules[VAR_2], next, next) { if (rule->action == ACTION_SUSPEND &&
!strcmp(rule->options.suspend.VAR_1, VAR_1)) { remove_rule(rule); VAR_3 = 0; } } } QLIST_FOREACH_SAFE(r, &s->suspended_reqs, next, r_next) { if (!strcmp(r->VAR_1, VAR_1)) { qemu_coroutine_enter(r->co, NULL); VAR_3 = 0; } } return VAR_3; }