int do_subchannel_work_passthrough(SubchDev *sch)

{

    int ret = 0;

    SCSW *s = &sch->curr_status.scsw;



    if (s->ctrl & SCSW_FCTL_CLEAR_FUNC) {

        /* TODO: Clear handling */

        sch_handle_clear_func(sch);

    } else if (s->ctrl & SCSW_FCTL_HALT_FUNC) {

        /* TODO: Halt handling */

        sch_handle_halt_func(sch);

    } else if (s->ctrl & SCSW_FCTL_START_FUNC) {

        ret = sch_handle_start_func_passthrough(sch);

    }



    return ret;

}

int do_subchannel_work_passthrough(SubchDev *sch)

{

    int ret = 0;

    SCSW *s = &sch->curr_status.scsw;



    if (s->ctrl & SCSW_FCTL_CLEAR_FUNC) {

        

        sch_handle_clear_func(sch);

    } else if (s->ctrl & SCSW_FCTL_HALT_FUNC) {

        

        sch_handle_halt_func(sch);

    } else if (s->ctrl & SCSW_FCTL_START_FUNC) {

        ret = sch_handle_start_func_passthrough(sch);

    }



    return ret;

}

    return ret; int do_subchannel_work_passthrough(SubchDev *sch)     int ret = 0;         ret = sch_handle_start_func_passthrough(sch);     return ret;     return ret;     return ret;
int FUNC_0(SubchDev *VAR_0)

{

    int VAR_1 = 0;

    SCSW *s = &VAR_0->curr_status.scsw;



    if (s->ctrl & SCSW_FCTL_CLEAR_FUNC) {

        

        sch_handle_clear_func(VAR_0);

    } else if (s->ctrl & SCSW_FCTL_HALT_FUNC) {

        

        sch_handle_halt_func(VAR_0);

    } else if (s->ctrl & SCSW_FCTL_START_FUNC) {

        VAR_1 = sch_handle_start_func_passthrough(VAR_0);

    }



    return VAR_1;

}

int FUNC_0(SubchDev *VAR_0)
{ int VAR_1 = 0; SCSW *s = &VAR_0->curr_status.scsw; if (s->ctrl & SCSW_FCTL_CLEAR_FUNC) { sch_handle_clear_func(VAR_0); } else if (s->ctrl & SCSW_FCTL_HALT_FUNC) { sch_handle_halt_func(VAR_0); } else if (s->ctrl & SCSW_FCTL_START_FUNC) { VAR_1 = sch_handle_start_func_passthrough(VAR_0); } return VAR_1; }