DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

udi_channel_event_ind(3udi)


Channel event notification (env-to-driver)

SYNOPSIS

#include <udi.h>

void udi_channel_event_ind (

	udi_channel_event_cb_t *cb );
 
typedef void udi_channel_event_ind_op_t (

	udi_channel_event_cb_t *cb );
 

ARGUMENTS cb is a channel event control block allocated by the environment and used to hold details of the specific channel event.

TARGET CHANNEL The channel over which the event is to be delivered.

DESCRIPTION This channel operation is used by the environment to signal that a generic event has occured on the other end of the channel. The type of event that has occured, and additional parameters for the event, are contained in the udi_channel_event_cb_t control block.

If a driver receives an unexpected UDI_CHANNEL_CLOSED event indication on a parent or child channel, it must treat it as an "abrupt unbind", as described in Section 24.6, "Device Management Operations".

If a driver closes its end of the channel itself (with udi_channel_close) before the other end is closed or before a udi_channel_event_ind of type UDI_CHANNEL_CLOSED is serviced, it will not receive a UDI_CHANNEL_CLOSED indication.

Once a UDI_CHANNEL_CLOSED indication has been received on a given channel, no other operations will be received on that channel.

Once the driver has completed processing the channel event, it must return the control block to the environment using udi_channel_event_complete. Drivers must not directly free channel event control blocks.

WARNINGs Drivers must not invoke this operation.

Drivers handling UDI_CHANNEL_OP_ABORTED events should be careful to abort the referenced control block (or at least mark it as having an abort in progress) before returning from the udi_channel_event_ind operation, to avoid race conditions with normal completions.

references udi_channel_event_cb_t, udi_channel_event_complete


UDI Core Specification Contents