Barrelfish
|
Bidirectional Multi-hop channel implementation. More...
Functions | |
errval_t | multihop_chan_bind (struct multihop_chan *mc, struct multihop_bind_continuation cont, iref_t iref, struct waitset *waitset) |
Initialize a new multihop channel. More... | |
void | multihop_chan_send_bind_reply (struct multihop_chan *mc, errval_t msgerr, multihop_vci_t vci, struct waitset *waitset) |
Send a reply back to the monitor. If the error code indicates success, this function creates a new monitor binding and registers to receive messages. More... | |
errval_t | multihop_send_message (struct multihop_chan *mc, struct event_closure _continuation, void *msg, size_t msglen) |
Send a multi-hop message. More... | |
errval_t | multihop_send_capability (struct multihop_chan *mc, struct event_closure _continuation, struct flounder_cap_state *cap_state, struct capref cap) |
Send a capability over the multi-hop channel. More... | |
errval_t | multihop_chan_change_waitset (struct multihop_chan *mc, struct waitset *ws) |
errval_t | multihop_chan_register_send (struct multihop_chan *mc, struct waitset *ws, struct event_closure cont) |
register a continuation closure to be invoked on the given waitset when the multi-hop channel may be able to accept the next message | |
bool | multihop_chan_is_window_full (struct multihop_chan *mc) |
Is the send window full? | |
void | multihop_init (void) |
Initialize the multi-hop interconnect driver. | |
Bidirectional Multi-hop channel implementation.
errval_t multihop_chan_bind | ( | struct multihop_chan * | mc, |
struct multihop_bind_continuation | cont, | ||
iref_t | iref, | ||
struct waitset * | waitset | ||
) |
Initialize a new multihop channel.
mc | Storrage for the multihop channel state |
cont | Continuation for bind completion/failure |
iref | IREF of the service to which we want to bind |
waitset | to use |
errval_t multihop_chan_change_waitset | ( | struct multihop_chan * | mc, |
struct waitset * | ws | ||
) |
\ brief Change the waitset of the multi-hop channel
mc | pointer to the multi-hop channel |
ws | the new waitset |
void multihop_chan_send_bind_reply | ( | struct multihop_chan * | mc, |
errval_t | msgerr, | ||
multihop_vci_t | vci, | ||
struct waitset * | waitset | ||
) |
Send a reply back to the monitor. If the error code indicates success, this function creates a new monitor binding and registers to receive messages.
multihop_chan | |
err | error code to send back |
vci | my vci for ingoing messages |
waitset | waitset to use for the channel |
errval_t multihop_send_capability | ( | struct multihop_chan * | mc, |
struct event_closure | _continuation, | ||
struct flounder_cap_state * | cap_state, | ||
struct capref | cap | ||
) |
Send a capability over the multi-hop channel.
mc | pointer to the multi-hop channel |
_continuation | callback to be executed after the message is sent |
cap_state | pointer to the cap state of the channel |
cap | the capability to send |
errval_t multihop_send_message | ( | struct multihop_chan * | mc, |
struct event_closure | _continuation, | ||
void * | msg, | ||
size_t | msglen | ||
) |
Send a multi-hop message.
mc | pointer to the multi-hop channel |
_continuation | callback to be executed after the message is sent |
msg | pointer to the message payload |
msglen | length of the message payload (in bytes) |