Event Channel Operations
Template: struct rdma_event_channel * rdma_create_event_channel (void)
Input Parameters:
void no arguments
Output Parameters:
none
Return Value:
A pointer to the created event channel, or NULL if the request fails. On failure, errno will be set to indicate the failure reason.
Description:
Opens an event channel used to report communication events. Asynchronous events are reported to users through event channels.
Event channels are used to direct all events on an rdma_cm_id. For many clients, a single event channel may be sufficient, however, when managing a large number of connections or cm_ids, users may find it useful to direct events for different cm_ids to different channels for processing.
All created event channels must be destroyed by calling rdma_destroy_event_channel. Users should call rdma_get_cm_event to retrieve events on an event channel.
Each event channel is mapped to a file descriptor. The associated file descriptor can be used and manipulated like any other fd to change its behavior. Users may make the fd non-blocking, poll or select the fd, etc.
See Also: rdma_cm, rdma_get_cm_event, rdma_destroy_event_channel
Template: void rdma_destroy_event_channel (struct rdma_event_channel *channel)
Input Parameters:
channel The communication channel to destroy.
Output Parameters:
none
Return Value:
none
Description: Close an event communication channel. Release all resources associated with an event channel and closes the associated file descriptor.
All rdma_cm_id's associated with the event channel must be destroyed, and all returned events must be acked before calling this function.
See Also: rdma_create_event_channel, rdma_get_cm_event, rdma_ack_cm_event