base-linux IRQ session

Johannes Kliemann kliemann at ...543...
Tue Mar 13 13:36:09 CET 2018


Hi all,

I'm currently implementing the IRQ session on base-linux.
If I understood the Foundations book correctly interrupts are waiting in
a separate thread that locks when it is waiting and continues (and calls
the handler) once an interrupt is triggered.

According to this I have implemented a kernel module [1] that triggers
interrupts via reads on a device file. The interrupt can be registered
via ioctl on the file descriptor and the a blocking read is called that
returns once the registered interrupts has been triggered.

I have looked into the implementations of base-nova and base-hw but
didn't completely understand it. As far as I understood the session
component implements the session and only requires the interrupt number
and a signal handler.
The Irq_object implements the waiting thread but I didn't see where it
is waiting for the interrupt.
Also as far as I could see it the actual interrupt capability stays
inside the session in core and only the signal handler capability is
passed to the component.

Is my understanding of this correct? And is there any further
documentation on this?

Regards,
Johannes

[1]:
https://github.com/jklmnn/hwiodev/blob/c445eb58daa6d29e9f779bf6ad4b00818fba6659/hwio.c




More information about the users mailing list