DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

udi_scsi_pd_ops_t(3udi)


SCSI Peripheral 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_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				1
 

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

};
 

UDI SCSI Driver Specification Contents