Chapter 3 Software Overview
NI-VXI User Manual 3-44 © National Instruments Corporation
specifies which types of signals are handled by signal handlers, and
which are queued onto the global signal queue for each VXI logical
address. A separate handler can be installed for each VXI logical
address present (refer to the description for SetSignalHandler). A
default handler, DefaultSignalHandler, is automatically installed
when InitVXIlibrary is called from the application for every VXI
logical address. If signals are queued, the application can use the
SignalDeq function to selectively return a signal off a global signal
queue by VXI logical address and/or type of signal.
Another method for handling signals (and VXI/VME interrupts routed
to signals) can be used instead of the two previous methods, and
involves using the WaitForSignal function. WaitForSignal can be
used to suspend a process/function until a particular signal (or one of a
set of signals) arrives. In a multitasking operating system, any number
of WaitForSignal calls can be pending. In a nonmultitasking
operating system, only one WaitForSignal call can be pending.
If the RouteVXIint has specified that a status/ID value should be
handled by the VXI/VME interrupt handler and not by the signal
handler, the specified callback handler is invoked. The VXI/VME
interrupt handler for a particular level is called with the VXI interrupt
level and the status/ID without any interpretation of the status/ID value.
The callback handler can do whatever is necessary with the status/ID
value. The SetVXIintHandler function can be called to change the
current callback handler for a particular level. A default handler,
DefaultVXIintHandler is automatically installed with a call to
InitVXIlibrary at the start of the application. EnableVXIint and
DisableVXIint are used to sensitize and desensitize the application
to VXI/VME interrupts routed to the VXI/VME interrupt handlers.
EnableVXItoSignalInt and DisableVXItoSignalInt are used to
sensitize and desensitize the application to VXI/VME interrupts routed
to be processed as VXI signals.
When you are testing VXI/VME interrupt handlers or creating a
message-based interrupter, you must assert a VXI/VMEbus interrupt
line and present a valid status/ID value. The AssertVXIint function
asserts an interrupt on the local CPU or on the specified extended
controller. DeAssertVXIint can be used to unassert a VXI/VME
interrupt that was asserted using the AssertVXIint function.
AcknowledgeVXIint can be used to acknowledge VXI/VME
interrupts that the local CPU is not enabled to automatically handle
via EnableVXIint or EnableVXItoSignalInt. Both