int cpu_watchpoint_remove(CPUState *env, target_ulong addr, target_ulong len,

                          int flags)

{

    target_ulong len_mask = ~(len - 1);

    CPUWatchpoint *wp;



    TAILQ_FOREACH(wp, &env->watchpoints, entry) {

        if (addr == wp->vaddr && len_mask == wp->len_mask

                && flags == (wp->flags & ~BP_WATCHPOINT_HIT)) {

            cpu_watchpoint_remove_by_ref(env, wp);

            return 0;

        }

    }

    return -ENOENT;

}

int cpu_watchpoint_remove(CPUState *env, target_ulong addr, target_ulong len,

                          int flags)

{

    target_ulong len_mask = ~(len - 1);

    CPUWatchpoint *wp;



    TAILQ_FOREACH(wp, &env->watchpoints, entry) {

        if (addr == wp->vaddr && len_mask == wp->len_mask

                && flags == (wp->flags & ~BP_WATCHPOINT_HIT)) {

            cpu_watchpoint_remove_by_ref(env, wp);

            return 0;

        }

    }

    return -ENOENT;

}

int FUNC_0(CPUState *VAR_0, target_ulong VAR_1, target_ulong VAR_2,

                          int VAR_3)

{

    target_ulong len_mask = ~(VAR_2 - 1);

    CPUWatchpoint *wp;



    TAILQ_FOREACH(wp, &VAR_0->watchpoints, entry) {

        if (VAR_1 == wp->vaddr && len_mask == wp->len_mask

                && VAR_3 == (wp->VAR_3 & ~BP_WATCHPOINT_HIT)) {

            cpu_watchpoint_remove_by_ref(VAR_0, wp);

            return 0;

        }

    }

    return -ENOENT;

}

int FUNC_0(CPUState *VAR_0, target_ulong VAR_1, target_ulong VAR_2,
int VAR_3)
{ target_ulong len_mask = ~(VAR_2 - 1); CPUWatchpoint *wp; TAILQ_FOREACH(wp, &VAR_0->watchpoints, entry) { if (VAR_1 == wp->vaddr && len_mask == wp->len_mask
&& VAR_3 == (wp->VAR_3 & ~BP_WATCHPOINT_HIT)) { cpu_watchpoint_remove_by_ref(VAR_0, wp); return 0; } } return -ENOENT; }