break up programmed I/O requests
void pio_breakup(int (xxstrategy)(), struct buf bp, int maxsecsz);
pio_breakup is used to break up programmed I/O
requests across page boundaries.
Address of the driver's
Pointer to a buf structure.
Maximum size of the pieces
into which the I/O request is divided.
Typically, maxsecsz is 256, but it
varies by device.
If an error occurs, the error code is passed
the allocated buffer is released,
In addition, the following fields
are set in the buffer header pointed to by bp:
set to the original value of
ORed with B_DONE and B_ERROR
set to the value of
breaks requests into maxsecsz pieces,
and either reads data from the user process
or writes data to the user process,
depending on the setting of
u.u_base member of the user structure
points to the address in the user process
where data will be read or written.
A buffer header is allocated and filled,
routine is called, using
to wait until
which may alter previously set spl levels in your driver.
Context and synchronization
1, 2, 2mp
Differences between versions
For ODDI version 3 and forward,
handles this function internally
so this call is not required.
SVR5 DDI compatibility
DDI drivers prior to version 8 call the
function instead of
structure to specify the constraints of the breakup.
Beginning with DDI version 8,
is called outside the driver,
entry point is called.
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 5 HDK - June 2005