DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

udi_scsi_hd_ops_t(3udi)


SCSI HBA Driver entry point ops vector

SYNOPSIS

#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				2
 

DESCRIPTION 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 },

	...

};
 

UDI SCSI Driver Specification Contents