InterruptDisable()

QNX SDP8.0C Library ReferenceAPIDeveloper

Disables all external interrupts on the current CPU core of the calling thread

Synopsis:

#include <sys/neutrino.h>

void InterruptDisable( void );

Library:

libc

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

Description:

The InterruptDisable() function disables all external interrupts on the current CPU core of the calling thread; all other CPUs are unaffected.

Before calling this function:

  • The process must have the PROCMGR_AID_IO ability enabled. For more information, see procmgr_ability().
  • The calling thread must have obtained I/O privileges by calling:
    ThreadCtl( _NTO_TCTL_IO_LEVEL, (void*)_NTO_IO_LEVEL_1 );
    

If you don't do these things, the thread might SIGSEGV when it calls InterruptDisable().

Reenable the interrupts by calling InterruptEnable().

CAUTION:
  • You should disable interrupts for as little time as possible (i.e., the minimum time you need to access or deal with the hardware). Failure to do so may result in increased interrupt latency and the inability to meet realtime deadlines.
  • Some kernel calls and library routines reenable interrupts. Masked interrupts aren't affected.
  • InterruptDisable() doesn't support nesting. If a specific thread calls this function once and then calls it again without having reenabled hardware interrupts, the second call has no effect, and the first InterruptEnable() call after this point reenables hardware interrupts.

Classification:

QNX OS

Safety:
Cancellation pointNo
Signal handlerYes
ThreadYes
Page updated: