Figure 4: Support functions provided by the CPI.

Convenience Programming Interface Derived Functions:


MsgTag Call (ThreadId to)

MsgTag Call (ThreadIdto, Time SndTimeout, RcvTimeout) [Call Timeouts]

MsgTag Send (ThreadId to)

MsgTag Send (ThreadId to, TimeSndTimeout) [Send Timeout]

MsgTag Reply (ThreadId to)

MsgTag Receive (ThreadId from)

MsgTag Receive (ThreadId from, Time RcvTimeout) [Receive Timeout]

MsgTag Wait (ThreadId& from)

MsgTag Wait (Time RcvTimeout, ThreadId&from) [Wait Timeout]

MsgTag ReplyWait (ThreadId to, ThreadId&from)

MsgTag ReplyWait (ThreadId to, TimeRcvTimeout, ThreadId&from) [ReplyWait Timeout]

void Sleep (Time t)

MsgTag Lcall (ThreadId to)

MsgTag LreplyWait (ThreadId to, ThreadId&from)


Convenience Programming Interface Support Functions:

Bool IpcSucceeded (MsgTag t)

Bool IpcFailed (MsgTag t) - Delivers the state of the error indicator.

Bool IpcPropagated (MsgTag t)

Bool IpcRedirected (MsgTag t)

Bool IpcXcpu (MsgTag t) - Checks if the IPC was propagated/redirected/cross processor.

Word ErrorCode ()

ThreadId IntendedReceiver ()

ThreadId ActualSender () - Delivers the errorcode/intended receiver TCR/actual sender.

void Set Propagation (MsgTag&t)
Sets the propagationbit.

void Set VirtualSender (ThreadId t) - Sets the virtual senderTCR.

Word Timeouts (Time SndTimeout, RcvTimeout) - Delivers a word containing both timeout values.