Detach an interrupt handler by ID
#include <sys/neutrino.h> int InterruptDetach( int id ); int InterruptDetach_r( int id );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
These kernel calls detach the interrupt handler specified by the id argument. If, after detaching, no thread is attached to the interrupt, then the interrupt is masked off. The thread that detaches the interrupt handler must be in the same process as the thread that attached it.
The InterruptDetach() and InterruptDetach_r() functions are identical except in the way they indicate errors. See the Returns section for details.
Before calling either of these functions, the thread must request I/O privileges by calling:
ThreadCtl( _NTO_TCTL_IO, 0 );
If the thread doesn't do this, it might SIGSEGV when it calls InterruptDetach() or InterruptDetach_r().
These calls don't block.
The only difference between these functions is the way they indicate errors:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
InterruptAttach(), InterruptAttachEvent(), InterruptHookIdle(), InterruptUnlock()
Writing an Interrupt Handler chapter of the Neutrino Programmer's Guide
Interrupts chapter of Getting Started with QNX Neutrino