Caution: This version of this document is no longer maintained. For the latest documentation, see


Attach the pseudo interrupt handler that the instrumented module uses


#include <sys/neutrino.h>

int InterruptHookTrace( 
   const struct sigevent * (* handler)(int),
   unsigned flags );


A pointer to the handler function.
Flags that specify how you want to attach the interrupt handler.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


The InterruptHookTrace() kernel call attaches the pseudo interrupt handler handle that the instrumented module uses.

Note: This function requires the instrumented kernel. For more information, see the System Analysis Toolkit (SAT) User's Guide.

Before calling this function, the thread must request I/O privileges by calling:

ThreadCtl( _NTO_TCTL_IO, 0 );

The handler argument specifies the pseudo interrupt handler that receives trace events from the kernel.

The flags argument is a bitwise OR of the following values, or 0:

Flag Description
_NTO_INTR_FLAGS_END Put the new handler at the end of the list of existing handlers (for shared interrupts) instead of the start.


The interrupt structure allows trace interrupts to be shared. For example, if two processes take over the same trace interrupt, both handlers are invoked consecutively. When a handler attaches, it's placed in front of any existing handlers for that interrupt and is called first. This behavior can be changed by setting the _NTO_INTR_FLAGS_END flag in the flags argument. This adds the handler at the end of any existing handlers.

Blocking states

This call doesn't block.


An interrupt function ID, or -1 if an error occurs (errno is set).


All kernel interrupt entries are in use.
A fault occurred when the kernel tried to access the buffers provided.
The process doesn't have superuser capabilities.
The kernel isn't instrumented.


QNX Neutrino

Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

InterruptAttach(), TraceEvent()

Writing an Interrupt Handler chapter of the Neutrino Programmer's Guide

System Analysis Toolkit (SAT) User's Guide