Implement software interrupts

I would like to implements software interrupts for sixteen kinds of interrupt levels. That is, client process can issue interrupts, and server process (1) attaches interrupt handler (2) mask/unmask interrupt for sixteen interrupt levels in sixteen different ISTs.

QNX support 16 POSIX realtime signals (SIGRTMIN to SIGRTMAX). Since the signal action is process level and signal mask is thread level. it looks like I can use different realtime signals for different IST to mask/unmask different interrupts levels. However, handling pid and tid between process is quitely inconvenient.

I notice that QNX treat POSIX signals as asynchronous event. Can I use QNX pulse to implement signal mechanism? Because I do not want to deal with pid and tid between process?