|
|
udi_scsi_pd_ops_t(3udi)
SCSI Peripheral Driver entry point ops vector
#include <udi.h>typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_scsi_bind_ack_op_t *bind_ack_op; udi_scsi_unbind_ack_op_t *unbind_ack_op; udi_scsi_io_ack_op_t *io_ack_op; udi_scsi_io_nak_op_t *io_nak_op; udi_scsi_ctl_ack_op_t *ctl_ack_op; udi_scsi_event_ind_op_t *event_ind_op; } udi_scsi_pd_ops_t; /* Ops Vector Number */#define UDI_SCSI_PD_OPS_NUM 1DESCRIPTION A SCSI Peripheral Driver uses the udi_scsi_pd_ops_t structure in a udi_ops_init_t as part of its udi_init_info in order to register its SCSI Metalanguage entry points.
EXAMPLE The driver's udi_init_info might include the following:
#define MY_SCSI_OPS 1 /* Ops for my SCSI HBA parent */
#define MY_OTHER_OPS 2 /* Some other ops */
#define MY_SCSI_META 1 /* Meta index for the SCSI Metalanguage */
static const udi_scsi_pd_ops_t ddd_scsi_pd_ops = { ddd_scsi_channel_event_ind, ddd_scsi_bind_ack, ddd_scsi_unbind_ack, ddd_scsi_io_ack, ddd_scsi_io_nak, ddd_scsi_ctl_ack, ddd_scsi_event_ind }; ... static const udi_ops_init_t ddd_ops_init_list[] = { { MY_SCSI_OPS, MY_SCSI_META, UDI_SCSI_PD_OPS_NUM, 0, /* chan_context_size */ (udi_ops_vector_t *)&ddd_scsi_pd_ops }, { 0 } };