Thread (5 messages) 5 messages, 3 authors, 2012-05-12

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help