|
|
#include <sys/types.h> #include <sys/buf.h> #include <sys/ddi.h>typedef bcb_t;
uchar_t bcb_addrtypes; /* type(s) of addresses accepted */
uchar_t bcb_flags; /* misc flags */
size_t bcb_max_xfer; /* maximum transfer length; total */
/* xfer if not BA_SCGTH, else per */
/* ba_scgth_t entry */
size_t bcb_granularity; /* minimum acceptable offset/size */
/* unit (sector size, for disks) */
physreq_t *bcb_physreqp; /* physical alignment requirements */
bcb_addrtypesBA_SCGTH may not be used with BA_KVIRT.
Drivers that support only character access
(in other words, no buffer cache use)
set the BA_UIO flag only
for a bcb that is used
for data transfers within the operating system.
Drivers that support I/O operations
that use the buffer cache
must set both BA_UIO and BA_KVIRT
in addrtypes for such data transfers.
Drivers that set multiple addrtypes
must be able to distinguish one from the other
and be coded to use the buffers appropriately.
bcb_flagsbcb_max_xferbcb_max_xfer may be zero,
meaning unlimited;
otherwise, it must be a multiple
of the bcb_granularity value.
bcb_granularitybcb_granularity does not need to be a power of 2,
but it must not be zero.
bcb_physreqp
The following bcb_flag is supported
only in DDI versions before version 8.
bcb_physreq member
in preference to BCB_PHYSCONTIG.
The following values are accepted for
the b_addrtypes member
in pre-DDI 8 drivers:
BA_KVIRT is the only b_addrtypes specification that can be used for both DDI 8 and pre-DDI 8 drivers.
Earlier releases erroneously stated that
thebcb_max_xfer member determined
the maximum transfer length of each piece
for scatter/gather operations.
Earlier releases documented a BA_PHYS value
for the bcb_addrtypes member.
This was never correctly implemented and should not be used.
``Buffered I/O buffers, allocating'' in HDK Technical Reference
``DMA up to 64 bits (DDI only)'' in HDK Technical Reference
``Extended SCSI addressing scheme'' in HDK Technical Reference
``Memory allocation'' in HDK Technical Reference
``Scatter/gather operations'' in HDK Technical Reference