I'm writing a simple kernel module. This module has the abillity to handle interrupts. I want to be able to let the user program install an interrupt handler, which will be called from the driver. Linux is very picky when it comes to user space and kernel space interraction, so I can't call a user function directly. Is there a simple way of doing this?
I found out that signals can be used to create software interrupts. But how can I send a signal from my driver? (I know I can catch signals with the sigaction function) Maybe with function kill? But I'm not sure if I am allowed to call this function from a kernel module.
I also need to send data with signal (simple int would do it), to know what happened.