Specifications
Device Driver Entry Points
FDT Routines
FDT Routines
Perform any device-dependent activities needed to prepare the I/O database to
process an I/O request.
Specified in
Use the FUNCTAB macro to specify the set of FDT routines that preprocess
requests for I/O activity of a given type. Specify the names of the routines in the
order in which you want them to execute for each type of I/O operation.
Called by
The $QIO system service calls a driver’s FDT routines from the module
SYSQIOREQ.
Synchronization
FDT routines are called at IPL$_ASTDEL and must exit at IPL$_ASTDEL.
FDT routines must not lower IPL below IPL$_ASTDEL. If they raise IPL,
they must lower it to IPL$_ASTDEL before passing control to any other code.
Similarly, before exiting they must release any spinlocks they may acquire in a
multiprocessing environment.
Context
FDT routines execute in the context of the process that requested the I/O activity.
If an FDT routine alters the stack, it must restore the stack before returning
control to the caller of the routine.
Register usage
FDT routines must preserve the contents of R3 through R8, the AP, and the FP.
Input
Location Contents
R0 Address of FDT routine being called
R3 Address of IRP
R4 Address of PCB of the requesting process
R5 Address of UCB of the device on which I/O activity
is requested
R6 Address of CCB that describes the user-specified
process-I/O channel
R7 Number of the bit that specifies the code for the
requested I/O function
R8 Address of entry in the function decision table that
dispatched control to this FDT routine
AP Address of first function-dependent argument (p1)
specified in the $QIO request
4–11