Specifications

Device Driver Entry Points
Interrupt Service Routine
Input
Location Contents
00(SP) Address of longword that contains the address of
the IDB
04(SP) to 24(SP) For UNIBUS, Q22–bus, and generic VAXBI devices,
the contents of R0 through R5 at the time of the
interrupt
28(SP) For UNIBUS, Q22–bus, and generic VAXBI devices,
PC at the time of the interrupt
32(SP) For UNIBUS, Q22–bus, and generic VAXBI devices,
PSL at the time of the interrupt
04(SP) to 16(SP) For MASSBUS devices, the contents of R2 through
R5 at the time of the interrupt
20(SP) For MASSBUS devices, PC at the time of the
interrupt
24(SP) For MASSBUS devices, PSL at the time of the
interrupt
Exit
Before an interrupt service routine transfers control to the suspended driver, it
must restore the contents of R3 and R4 from the UCB. It then transfers control
to the address saved in UCB$L_FPC.
When it regains control (after the suspended driver forks), an interrupt service
routine removes the address of the pointer to the IDB from the top of the stack
and restores the registers the operating system saved when dispatching the
interrupt (R0 through R5 for UNIBUS, Q22–bus, and generic VAXBI interrupt
service routines, R2 through R5 for MASSBUS interrupt service routines).
Finally, an interrupt service routine dismisses the interrupt with an REI
instruction.
Description
An interrupt service routine performs the following functions:
1. Determines whether the interrupt is expected
2. Processes or dismisses unexpected interrupts
3. Activates the suspended driver so it can process expected interrupts
For MASSBUS devices, a system interrupt service routine performs these
functions.
4–14