SBL_SendMsgWithNotify sends a deliberate update message with a notification.


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


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.


SBL_SendMsgWithNotify sends a message with a notification of nwords taken from address sendAddr. SBL_SendMsgWithNotify returns after the 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.

After this message is delivered to the receiver's memory, a user-level handler associated with the receive buffer will be called in the receiving process. If the receiver did not specify a handler in its original call to SBL_ExportRecvBuf, no notification takes place.

Return Values:

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