PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Interrupt Registration

An interrupt member (a node in the IST) can have four kinds of information attached to it:

Installation of this information is done by drivers and I/O experts during initialization. The process of attachment is called registration. Once registered to an interrupt member, the information persists until the next system startup.

There are two types of ISRs. The first type, called a transversal ISR , routes interrupt processing from a member to one of its child members. Transversal ISRs are always attached to root or parent/child members. The second type of ISR directly handles a device's request for service. This type, called a handler ISR, is always attached to a leaf member. Transversal ISRs never directly handle a device's request for service, and handler ISRs never directly route the processing of an interrupt.

When a handler ISR is invoked, it is supplied with three parameters. The first parameter indicates the source of the interrupt and consists of an InterruptSetID and InterruptMemberNumber, forming the InterruptSetMember parameter. This allows a single ISR that has been registered with multiple interrupt sources to determine which source caused the current interrupt. The second parameter is the reference constant value that was registered along with the ISR. The reference constant is not used by the system; its use is completely up to the driver writer. The third parameter is a numeric value that tells an ISR whether it has been invoked more than once in a single interrupt tree traversal process. See InterruptHandler for more information.

An IER turns on an interrupt source's ability to generate a hardware interruption. Enabling a root member or parent/child member also allows any pending interrupt requests from any hierarchically lower child to propagate.

An IDR turns off an interrupt source's ability to generate a hardware interruption. It returns the previous state of the interrupt source (enabled or disabled), which can be used to decide if subsequent enable operations are required. Disabling a root member or parent/child member also prevents any pending interrupt requests from any hierarchically lower child from propagating.


© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)