|
|
udi_intr_attach_ack(3udi)
Acknowledge an interrupt attachment
#include <udi.h>void udi_intr_attach_ack ( udi_intr_attach_cb_t *intr_attach_cb, udi_status_t status );ARGUMENTS intr_attach_cb is a pointer to an interrupt attach control block.
status indicates whether or not the attachment was successful.
TARGET CHANNEL The target channel for this operation is the bound bus bridge channel connecting a bus bridge driver with one of its child device drivers, established during the initial binding between the child device and its bus bridge.
PROXIES udi_intr_attach_ack_unused
Proxy for udi_intr_attach_ack
udi_intr_attach_ack_op_t udi_intr_attach_ack_unused;udi_intr_attach_ack_unused may be used as a device driver's udi_intr_attach_ack entry point if the driver never calls udi_intr_attach_req (and therefore expects to receive no acknowledgements).
DESCRIPTION The udi_intr_attach_ack operation is used by an interrupt dispatcher driver to acknowledge attachment of an interrupt handler (or failure to do so, as indicated by status), as requested by a udi_intr_attach_req operation.
Before sending the acknowledgment, the interrupt dispatcher driver must spawn and anchor its end of the new interrupt event channel, setting the spawn index equal to the interrupt_idx for this attachment.
interrupt_idx in the returned control block must be the same as that passed to udi_intr_attach_req.
Upon failure indication, the handler driver must be sure to close the half-spawned channel, by calling udi_channel_close.
STATUS VALUES UDI_OK- The handler was successfully registered for the indicated interrupts and normal interrupt processing will occur. The preprocessing_handle argument returned in the control block must be UDI_NULL_PIO_HANDLE.
UDI_STAT_MISTAKEN_IDENTITY - This device has no interrupt source corresponding to the interrupt_idx value in the control block. The preprocessing_handle member of the control block is unchanged and the corresponding PIO handle ownership is returned to the interrupt handler.
warnings The control block must be the same control block as passed to the driver in the corresponding udi_intr_attach_req operation.
REFERENCES udi_intr_attach_cb_t, udi_intr_attach_req, udi_intr_detach_req, udi_channel_close