InterruptMemberNumber InterruptHandler (
InterruptSetMember ISTmember,
void * refCon,
UInt32 theIntCount);
When an ISR is invoked, member contains the ID of the IST member that is the currently interrupting source. Since an ISR can be registered with multiple IST members, the member parameter allows a single ISR to distinguish multiple interrupt sources. RefCon contains the reference constant that was installed along with the ISR.
If the ISR returns a positive number, the dispatcher uses that number to identify which child member should be invoked next.
If the ISR returns kIsrIsComplete, the interrupt dispatcher stops any further traversal of the IST and treats the interrupt request as serviced. See Interrupt Dispatching for additional information about the interrupt service process.
IMPORTANT
Since an ISR can be invoked when the device the ISR services is not requesting service, an ISR must be able to detect this situation and return kIsrIsNotComplete to the dispatcher. This lets the dispatcher continue looking for the actual ISR that will service the interrupt request.
The theIntCount parameter can be used by transversal interrupt handlers to determine if they have been reinvoked by the dispatcher. On each new interrupt tree transversal, this value is unique. This means that theIntCount will be a different value the first time a transversal ISR is invoked. However, if the transversal ISR is reinvoked during the same transversal process, the theIntCount value will be the same as the first time it was invoked. By saving the value of theIntCount during the previous tree traversal and verifying that the current value is the same, a transversal ISR can tell when it is being reinvoked.
Note that the theIntCount value will never be equal to 0. On ISR installation, the ISR's saved copy of theIntCount should be initialized to 0 so that the first invocations of the ISR can behave properly.
IMPORTANT
The actual value of theIntCount shouldn't interpreted in any way. How this value is computed may change in the future. The only valid interpretation of theIntCount is that it is unique for each interrupt tree transversal process and that it will never be 0.