|
|
#include <sys/types.h> #include <sys/sdi.h> #include <sys/ddi.h>
sb_type
member indicates whether
the sb structure contains an
scb(D4sdi)
(control block) or an
sfb(D4sdi)
(function block) structure.
unsigned long sb_type; union{ struct scb b_scb; struct sfb b_sfb; }sb_b;
sb_type
sb_b
is an immediate
scb(D4sdi);
used with
sdi_icmd(D3sdi).
sb_b
is an
scb(D4sdi);
used with the
sdi_send(D3sdi)
and
sdi_xsend(D3sdi)
functions.
sb_b
is an
sfb(D4sdi);
used with the
sdi_icmd(D3sdi)
and
sdi_xicmd(D3sdi)
functions.
b_scb
b_sfb
The sb structure itself was frozen at SDI version 1. Beginning with SDI version 2, the sb_extra structure supplements the sb structure; members that need to be added to support new functionality are added to the sb_extra structure. The members of the sb_extra structure should never be accessed directly by an SDI driver, but should be accessed through the kernel functions defined for each.
The method for using the sb structure is:
sb_type
member appropriately.
See scb(D4sdi) and sfb(D4sdi) for more information on structure use.
The target driver must only allocate a command block using sdi_getblk(D3sdi).
If one sb structure is copied, the new structure must be processed with the sdi_translate(D3sdi) or sdi_xtranslate(D3sdi) function.
sb_bufp
member
was added in SVR5
for SDI version 4.