Changeset 60744cb in mainline for uspace/lib/drv


Ignore:
Timestamp:
2024-05-17T17:51:56Z (14 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.

Location:
uspace/lib/drv
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/generic/interrupt.c

    r646849b3 r60744cb  
    4444
    4545errno_t register_interrupt_handler(ddf_dev_t *dev, int irq,
    46     interrupt_handler_t *handler, const irq_code_t *irq_code,
    47     cap_irq_handle_t *handle)
    48 {
    49         return async_irq_subscribe(irq, (async_notification_handler_t) handler,
    50             dev, irq_code, handle);
    51 }
    52 
    53 errno_t register_interrupt_handler_arg(ddf_dev_t *dev, int irq,
    5446    interrupt_handler_t *handler, void *arg, const irq_code_t *irq_code,
    5547    cap_irq_handle_t *handle)
  • uspace/lib/drv/include/ddf/interrupt.h

    r646849b3 r60744cb  
    4949 */
    5050
    51 typedef void interrupt_handler_t(ipc_call_t *, ddf_dev_t *);
     51typedef void interrupt_handler_t(ipc_call_t *, void *);
    5252
    53 extern errno_t register_interrupt_handler(ddf_dev_t *, int, interrupt_handler_t *,
    54     const irq_code_t *, cap_irq_handle_t *);
    55 extern errno_t register_interrupt_handler_arg(ddf_dev_t *, int,
     53extern errno_t register_interrupt_handler(ddf_dev_t *, int,
    5654    interrupt_handler_t *, void *, const irq_code_t *, cap_irq_handle_t *);
    5755extern errno_t unregister_interrupt_handler(ddf_dev_t *, cap_irq_handle_t);
Note: See TracChangeset for help on using the changeset viewer.