SVR5
do_biostart(D3)
do_biostart --
invoke another driver's biostart(D2) entry point routine
Synopsis
#include <sys/types.h>
#include <sys/ddi.h>
void do_biostart(chan_handle_t chan_handle, buf_t *bp);
Description
do_biostart( )
calls the
biostart(D2)
entry point routine of another driver
for which this driver has previously gotten a channel handle with the
drv_open(D3)
function.
Arguments
chan_handle-
Channel handle for the other driver returned by the
drv_open(D3)
function.
bp-
Pointer to a
buf(D4)
buffer header structure, used as an argument to the
biostart( )
entry point.
Return values
None. Errors are returned by using the
bioerror(D3)
function to mark the buffer as being in error
and extracted from the buffer with the
geterror(D3)
function.
For DDI versions in which the
bioerror( )
function is not available,
errors can be returned by setting
the B_ERROR flag in the b_flags
member
and setting the appropriate errno value
in the b_error
member of the
buf(D4)
structure.
Usage
do_biostart( )
is used to pass I/O requests to another driver.
It will ensure that the
buf_breakup(D3)
function is called to adapt the buffer
to the needs of the underlying driver;
the caller does not need to call the
buf_breakup( )
function itself.
If a driver wants to call its own
biostart( )
entry point routine,
it must do so using
buf_breakup( )
rather than
do_biostart( ).
Context and synchronization
User or blockable
context.
Hardware applicability
All
Version applicability
ddi:
8, 8mp
References
biostart(D2),
drv_attach(D3),
drv_open(D3),
drv_detach(D3)
``Layered device drivers'' in HDK Technical Reference
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005