This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Wait for a hardware interrupt
#include <sys/neutrino.h> int InterruptWait( int flags, const uint64_t * timeout ); int InterruptWait_r( int flags, const uint64_t * timeout );
Use TimerTimeout() to achieve a timeout. |
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
These kernel calls wait for a hardware interrupt. The calling thread should have attached a handler to the interrupt, by calling InterruptAttach() or InterruptAttachEvent(). The call to InterruptWait() or InterruptWait_r() blocks waiting for an interrupt handler to return an event with notification type SIGEV_INTR (i.e. a hardware interrupt).
The InterruptWait() and InterruptWait_r() functions are identical except in the way they indicate errors. See the Returns section for details.
If the notification event occurs before InterruptWait() is called, a pending flag is set. When InterruptWait() is called, the flag is checked; if set, it's cleared and the call immediately returns with success.
The only difference between these functions is the way they indicate errors:
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
InterruptAttach(), InterruptAttachEvent(), TimerTimeout()
Writing an Interrupt Handler chapter of the Neutrino Programmer's Guide