udi_scsi_event_cb_t(3udi)
Control block for SCSI event operations
#include <udi.h>typedef struct { udi_cb_t gcb; udi_ubit8_t event; udi_buf_t *aen_data_buf; } udi_scsi_event_cb_t; /* Control Block Group Number */#define UDI_SCSI_EVENT_CB_NUM 4MEMBERS gcb is a standard members at the front of SCSI control blocks, as defined in udi_scsi_bind_cb_t.
event is the type of asynchronous event. See the event field in the udi_scsi_bind_cb_t for valid event types.
aen_data_buf is a pointer to a data buffer containing AEN data and is only valid if UDI_SCSI_EVENT_AEN is set in event; otherwise it must be set to NULL. In the AEN case, aen_data_buf must contain no more than aen_buf_size bytes of valid data, as specified in the udi_scsi_bind_req. If aen_buf_size was zero, aen_data_buf must be NULL. It is legal in the SCSI architecture to send zero bytes of data with an AEN, so if the PD's device supports AEN but always sends zero bytes of data (indicating to the PD that it should go check its device) then this would be an example where an aen_buf_size of zero would be appropriate.
See udi_scsi_event_ind and udi_scsi_event_res for additional details on the usage of AEN buffers.
DESCRIPTION The SCSI event control block is used between the HD and its PD children to notify the PD of an asynchronous event.
In order to use this type of control block it must be associated with a control block index by including UDI_SCSI_EVENT_CB_NUM in a udi_cb_init_t in the driver's udi_init_info.
REFERENCES udi_scsi_event_ind, udi_scsi_event_res, udi_cb_alloc