|
|
udi_scsi_hd_ops_t(3udi)
SCSI HBA Driver entry point ops vector
#include <udi.h>typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_scsi_bind_req_op_t *bind_req_op; udi_scsi_unbind_req_op_t *unbind_req_op; udi_scsi_io_req_op_t *io_req_op; udi_scsi_ctl_req_op_t *ctl_req_op; udi_scsi_event_res_op_t *event_res_op; } udi_scsi_hd_ops_t; /* Ops Vector Number */#define UDI_SCSI_HD_OPS_NUM 2DESCRIPTION A SCSI HBA Driver uses the udi_scsi_hd_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_BRIDGE_OPS 1 /* Ops for my parent bridge */
#define MY_SCSI_OPS 2 /* Ops for my SCSI PD children */
#define MY_SCSI_META 1 /* Meta index for the SCSI Metalanguage */
#define MY_BUS_META 2 /* Meta index for Bus Bridge Metalanguage */
static const udi_scsi_hd_ops_t ddd_scsi_hd_ops = { ddd_scsi_channel_event_ind, ddd_scsi_bind_req, ddd_scsi_unbind_req, ddd_scsi_io_req, ddd_scsi_ctl_req, ddd_scsi_event_res }; ... static const udi_ops_init_t ddd_ops_init_list[] = { { MY_SCSI_OPS, MY_SCSI_META, UDI_SCSI_HD_OPS_NUM, 0, /* chan_context_size */ (udi_ops_vector_t *)&ddd_scsi_hd_ops }, { MY_BRIDGE_OPS, MY_BUS_META, UDI_BUS_BRIDGE_OPS_NUM, 0, /* chan_context_size */ (udi_ops_vector_t *)&ddd_bus_bridge_ops }, ... };