Showroom USI example: parallel port

Hannes Mayer h.mayer at
Fri Oct 8 20:48:57 CEST 2004

Paolo Mantegazza wrote:
  > man ioperm, man iopl, at your choice.

Hi Paolo!

I always used #include <asm/io.h>, but #include <sys/io.h> seems to do
the trick. Thank you for the reminder to look into "man ioperm" again :-)

I managed to detect one interrupt, but after that no further interrupt is

Here is the while-loop in the thread of the USI example:

while (!end) {
	do {
		//ovr = rt_wait_intr_timed(intsem, nano2count(TIMEOUT), (void *)&retval);
		ovr = rt_wait_intr(intsem, (void *)&retval);
		if (end) break;
		if (ovr > 0) {					// overrun processing, if any, goes here
		/* normal processing goes here */
	} while (ovr > 0);

With some printf's I found that the first interrupt is detected, the loop proceeds
to rt_pend_linux_irq, starts over again, but then it hangs at rt_wait_intr and no
further interrupt is detected.
I already added rt_ack_irq, which I use in my kernel modules, but that doesn't work
in this case.

What else must be done to detect further parallel port interrupts in user-space ?

Thank you very much in advance!

Best regards,

More information about the Rtai mailing list