interface for a hardware trigger driver
From: Philipp Ittershagen <hidden>
Date: 2012-05-10 12:52:11
(resend, forgot CC) Hi Andre! On Thu, May 10, 2012 at 11:09:07AM +0200, Andre Haupt wrote:
Hi folks, Its been a while since i last did some kernel related stuff, so please bear with me if this sounds strange to your ears. What i want to achieve: I want to implement a hardware trigger that a user space process can react on. I need a driver that blocks a process/thread until a sepcific hardware interrupt occurs. The process should call a kernel interface and then should get blocked until another process/thread calls another kernel interface to stop waiting for the irq or an interrupt actually occurs. What i have: Back in the days i wrote a little character driver which implemented 2 ioctl commands. One command (IOCTL_TRIGGER_WAIT_IRQ) put the calling process to sleep using wait_evemt_interruptible() and the other command (IOCTL_TRIGGER_STOP_WAIT_IRQ) woke a processes again by calling wake_up_interruptible(). Now ioctls are frowned upon and i do not want to mess with majors and minors anymore either. Do you have any hints to the right approach for such a driver? Should i use some sysfs interface? If yes, which? Or does such a driver already exist? Can it be one completely in user space?
Why don't you use open(), write(), read() etc. to do the job? Tasks which should block can then do echo wait > /dev/yourdevname and another process can cancel the waiting by doing echo cancel > /dev/yourdevname Greeting, Philipp