This routine schedules I/O
and manages the buffer cache for driver I/O.
struct buf *bp;
The logic is as follows:
Check the configuration table for the device pointed to by
If it is improper,
u.u_error to ENXIO and return.
bp->b_blkno and, if less than zero,
b_flags to an error condition,
Check that the I/O request is reasonable.
If not, set an error condition,
call iodone and return.
Get an empty request block; sleep if necessary to obtain one.
and then call
to put the buffer pointed to by
into the proper spot in the request queue.
to start the request
on the queue for the logical unit.
When done, restore the previously set spl level and return.
© 2005 The SCO Group, Inc. All rights reserved.