udi_intr_detach_cb_t(3udi)


Control block for interrupt detachment operations

SYNOPSIS

#include <udi.h>

typedef struct {

	udi_cb_t gcb;

	udi_index_t interrupt_idx;

} udi_intr_detach_cb_t;
 
/* Bridge Detach Control Block Group Number */
 
#define  UDI_BUS_INTR_DETACH_CB_NUM				3
 

MEMBERS gcb is a generic control block header, which includes a pointer to the scratch space associated with this control block. The driver may use the scratch space while it owns the control block, but the values are not guaranteed to persist across channel operations.

interrupt_idx is used to select one of possibly several interrupt sources from the interrupt handler's device that are managed by a particular interrupt dispatcher. Zero indicates the first interrupt source for the device, one indicates the second source, etc. The dispatcher driver will have previously associated the handler's device properties with its channel context during the initial binding sequence.

DESCRIPTION The interrupt detach control block is used between the interrupt handler and the interrupt dispatcher to detach interrupt handler channels (i.e., deregister an interrupt handler for a particular interrupt source).

This control block must be declared by specifying the control block index value UDI_BUS_INTR_DETACH_CB_NUM in a udi_cb_init_t in the driver's udi_init_info.

The bus device driver obtains the udi_intr_detach_cb_t structure to use with the udi_intr_detach_req by calling udi_cb_alloc with a cb_idx that has been associated with UDI_BUS_INTR_DETACH_CB_NUM.

REFERENCES udi_intr_detach_req, udi_intr_detach_ack, udi_init_info, udi_cb_init_t, udi_cb_alloc


UDI Physical I/O Specification Contents