SBL_SendMsg

SBL_SendMsg sends a message using deliberate update.

Synopsis:

error = SBL_SendMsg(Int32* sendAddr, Int32* destAddr, int nwords)

Parameters:

IN Int32 *sendAddr: address of the data to be sent. It can be any address corresponding to allocated data. IN Int32* destAddr: address in local DestSpace corresponding to an imported receive buffer. IN int nwords: size of the message in SHRIMP words.

Description:

SBL_SendMsg sends a message of nwords taken from address sendAddr. SBL_SendMsg returns after message has been transferred to the network.

destAddr determines the destination of the data. destAddr is a proxy address in the caller's DestSpace. Since each DestSpace address belongs to no more than one proxy, this identification is unique. The data will be put in receive buffer on the destination node starting from offset equal to offset of destAddr from the beginning of this buffer proxy in local DestSpace.

Both sendAddr and destAddr should be SHRIMP word aligned. Both destAddr (destination address of the first word) and (destAddr + 4 nwords -1) (destination address of the last word) should belong to the same imported receive buffer.

SBL_SendMsg can be used from within a notification handler.

Return Values:

SBL_SendMsg returns 0 on success or negative error code on failure. Page faults are possible if sendAddr or destAddr does not correspond to valid addresses.
Copyright (c) 1995, Princeton University