ep_xmtr_availrails(3)

NAME

ep_xmtr_availrails, ep_xmtr_noderails, ep_xmtr_prefrail - rail hints for transmitters.

SYNOPSIS

#include <elan3/epcomms.h>
     
EP_RAILMASK ep_xmtr_availrails(
EP_XMTR *xmtr);
EP_RAILMASK ep_xmtr_noderails(
EP_XMTR *xmtr, unsigned nodeId);
int ep_xmtr_prefrail(
EP_XMTR *xmtr, EP_RAILMASK allowedRails, unsigned nodeId);

PARAMETERS

xmtr

The Elan Kernel Comms transmitter intended for message transmission.

allowedRails

A constraining bit mask of rails that may be selected.

nodeId

The ID of the target node of the message to be transmitted.

DESCRIPTION

When an Elan Kernel Comms message is transmitted, the rail to use for transmission must be specified at the point where the message buffer is queued. Generally, a data buffer used once for transmission (or receipt) of a single message should only be mapped onto one rail to complete the communication. It would be needlessly excessive to load the data buffer mapping onto every Elan in a multi-rail system. These functions are to assist with the selection of a rail that is a good choice for both source and destination.

Their usage is as follows:

ep_xmtr_availrails

Returns an EP_RAILMASK with bits set for all rails available for transmission from the local node.

ep_xmtr_noderails

Returns an EP_RAILMASK with bits set for all rails available on both the local node and the node with given nodeId.

ep_xmtr_prefrail

Returns as an integer quantity a preferred rail number to use for transmitting to the given node nodeId. The rail must be available on the local node and on the given node nodeId, and must also be set in the constraining EP_RAILMASK allowedRails. If more than one rail meets all requirements, ep_xmtr_prefrail will rotate between them in round-robin fashion.

The macro EP_RAIL2RAILMASK(r) can be used to convert between the numerical ID of a rail and its representation as an EP_RAILMASK bitmask.

SEE ALSO

ep_dvma_load(3), ep_transmit_message(3).


© Quadrics Ltd. 1998-2003