Changeset 60744cb in mainline for uspace/drv/block/virtio-blk


Ignore:
Timestamp:
2024-05-17T17:51:56Z (22 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
1801005
Parents:
646849b3
Message:

Let driver specify any argument to IRQ handler

This allows the driver to register a single handler for multiple
interrupts and still distinguish between them. It also removes
the extra step of having to get softstate from ddf_dev_t.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/block/virtio-blk/virtio-blk.c

    r646849b3 r60744cb  
    7373};
    7474
    75 static void virtio_blk_irq_handler(ipc_call_t *icall, ddf_dev_t *dev)
    76 {
    77         virtio_blk_t *virtio_blk = (virtio_blk_t *) ddf_dev_data_get(dev);
     75/** VirtIO block IRQ handler.
     76 *
     77 * @param icall IRQ event notification
     78 * @param arg Argument (virtio_blk_t *)
     79 */
     80static void virtio_blk_irq_handler(ipc_call_t *icall, void *arg)
     81{
     82        virtio_blk_t *virtio_blk = (virtio_blk_t *)arg;
    7883        virtio_dev_t *vdev = &virtio_blk->virtio_dev;
    7984
     
    145150
    146151        return register_interrupt_handler(dev, virtio_blk->irq,
    147             virtio_blk_irq_handler, &irq_code, &virtio_blk->irq_handle);
     152            virtio_blk_irq_handler, (void *)virtio_blk, &irq_code,
     153            &virtio_blk->irq_handle);
    148154}
    149155
Note: See TracChangeset for help on using the changeset viewer.