bcb(D4) bcb(D4)
NAME
bcb - breakup control block structure
SYNOPSIS
#include <sys/types.h>
#include <sys/buf.h>
#include <sys/ddi.h>
DESCRIPTION
The bcb structure is passed to buf_breakup(D3) to indicate
desired breakup properties.
USAGE
The bcb structure is allocated by the bcb_alloc(D3) routine,
and freed with the bcb_free(D3) routine.
Structure Definitions
The bcb structure is defined as type bcb_t and contains the
following members:
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_addrtypes specifies the types of addresses accepted. It
should be the sum of one or more address types, as listed for
b_addrtype in buf(D4), and must include either BA_KVIRT or
BA_PHYS, but not both. BA_UVIRT may not be used with BA_PHYS.
BA_SCGTH may not be used with BA_KVIRT.
bcb_flags include the following:
BCB_ONE_PIECE
Whole job must be done in one piece; fail if not
possible.
BCB_EXACT_SIZE
Fail jobs with unaligned offsets or sizes.
BCB_SYNCHRONOUS
Do not send multiple simultaneous jobs; also fail
any B_ASYNC jobs.
Copyright 1994 Novell, Inc. Page 1
bcb(D4) bcb(D4)
The following bcb_flag is now at level 2 support commitment
BCB_PHYSCONTIG
Requires physically contiguous buffers (if not
BA_SCGTH).
Drivers should use the PREQ_PHYSCONTIG flag in the bcb_physreq
in preference to BCB_PHYSCONTIG.
bcb_max_xfer is the maximum transfer length of each piece; for
BA_SCGTH, this is the maximum length of each ba_scgth_t entry.
bcb_max_xfer may be zero, meaning unlimited; otherwise, it
must be a multiple of bcb_granularity.
bcb_granularity defines the minimum acceptable offset or size
of a transfer. In disks, for example, this corresponds to
sector size. bcb_granularity does not need to be a power of
2, but it must not be zero.
bcb_physreqp is a pointer to a physreq(D4) structure which
defines the physical alignment requirements.
REFERENCES
bcb_alloc(D3), bcb_free(D3), buf_breakup(D3), physreq(D4)
NOTICES
Portability
All processors
Future Directions
BCB_PHYSCONTIG is obsolete as of December 31, 1994, and will
eventually be removed.
Copyright 1994 Novell, Inc. Page 2