void ide_bus_reset(IDEBus *bus)

{

    bus->unit = 0;

    bus->cmd = 0;

    ide_reset(&bus->ifs[0]);

    ide_reset(&bus->ifs[1]);

    ide_clear_hob(bus);



    /* pending async DMA */

    if (bus->dma->aiocb) {

#ifdef DEBUG_AIO

        printf("aio_cancel\n");

#endif

        bdrv_aio_cancel(bus->dma->aiocb);

        bus->dma->aiocb = NULL;

    }



    /* reset dma provider too */

    if (bus->dma->ops->reset) {

        bus->dma->ops->reset(bus->dma);

    }

}

void ide_bus_reset(IDEBus *bus)

{

    bus->unit = 0;

    bus->cmd = 0;

    ide_reset(&bus->ifs[0]);

    ide_reset(&bus->ifs[1]);

    ide_clear_hob(bus);



    

    if (bus->dma->aiocb) {

#ifdef DEBUG_AIO

        printf("aio_cancel\n");

#endif

        bdrv_aio_cancel(bus->dma->aiocb);

        bus->dma->aiocb = NULL;

    }



    

    if (bus->dma->ops->reset) {

        bus->dma->ops->reset(bus->dma);

    }

}

void FUNC_0(IDEBus *VAR_0)

{

    VAR_0->unit = 0;

    VAR_0->cmd = 0;

    ide_reset(&VAR_0->ifs[0]);

    ide_reset(&VAR_0->ifs[1]);

    ide_clear_hob(VAR_0);



    

    if (VAR_0->dma->aiocb) {

#ifdef DEBUG_AIO

        printf("aio_cancel\n");

#endif

        bdrv_aio_cancel(VAR_0->dma->aiocb);

        VAR_0->dma->aiocb = NULL;

    }



    

    if (VAR_0->dma->ops->reset) {

        VAR_0->dma->ops->reset(VAR_0->dma);

    }

}

void FUNC_0(IDEBus *VAR_0)
{ VAR_0->unit = 0; VAR_0->cmd = 0; ide_reset(&VAR_0->ifs[0]); ide_reset(&VAR_0->ifs[1]); ide_clear_hob(VAR_0); if (VAR_0->dma->aiocb) { #ifdef DEBUG_AIO
printf("aio_cancel\n"); #endif
bdrv_aio_cancel(VAR_0->dma->aiocb); VAR_0->dma->aiocb = NULL; } if (VAR_0->dma->ops->reset) { VAR_0->dma->ops->reset(VAR_0->dma); } }