Barrelfish
|
Bidirectional UMP channel implementation. More...
Functions | |
errval_t | ump_chan_init (struct ump_chan *uc, volatile void *inbuf, size_t inbufsize, volatile void *outbuf, size_t outbufsize) |
Initialise a new UMP channel. More... | |
void | ump_chan_destroy (struct ump_chan *uc) |
Destroy the local state associated with a given channel. | |
errval_t | ump_chan_bind (struct ump_chan *uc, struct ump_bind_continuation cont, struct event_queue_node *qnode, iref_t iref, struct monitor_binding *monitor_binding, size_t inchanlen, size_t outchanlen, struct capref notify_cap) |
Initialise a new UMP channel and initiate a binding. More... | |
errval_t | ump_chan_accept (struct ump_chan *uc, uintptr_t mon_id, struct capref frame, size_t inchanlen, size_t outchanlen) |
Initialise a new UMP channel to accept an incoming binding request. More... | |
void | ump_init (void) |
Initialise the UMP channel driver. | |
Bidirectional UMP channel implementation.
errval_t ump_chan_accept | ( | struct ump_chan * | uc, |
uintptr_t | mon_id, | ||
struct capref | frame, | ||
size_t | inchanlen, | ||
size_t | outchanlen | ||
) |
Initialise a new UMP channel to accept an incoming binding request.
uc | Storage for channel state |
mon_id | Monitor's connection ID for this channel |
frame | Frame capability containing channel |
inchanlen | Size of incoming channel, in bytes (multiple of UMP_MSG_BYTES) |
outchanlen | Size of outgoing channel, in bytes (multiple of UMP_MSG_BYTES) |
errval_t ump_chan_bind | ( | struct ump_chan * | uc, |
struct ump_bind_continuation | cont, | ||
struct event_queue_node * | qnode, | ||
iref_t | iref, | ||
struct monitor_binding * | monitor_binding, | ||
size_t | inchanlen, | ||
size_t | outchanlen, | ||
struct capref | notify_cap | ||
) |
Initialise a new UMP channel and initiate a binding.
uc | Storage for channel state |
cont | Continuation for bind completion/failure |
qnode | Storage for an event queue node (used for queuing bind request) |
iref | IREF to which to bind |
monitor_binding | Monitor binding to use |
inchanlen | Size of incoming channel, in bytes (rounded to UMP_MSG_BYTES) |
outchanlen | Size of outgoing channel, in bytes (rounded to UMP_MSG_BYTES) |
notify_cap | Capability to use for notifications, or #NULL_CAP |
errval_t ump_chan_init | ( | struct ump_chan * | uc, |
volatile void * | inbuf, | ||
size_t | inbufsize, | ||
volatile void * | outbuf, | ||
size_t | outbufsize | ||
) |
Initialise a new UMP channel.
Most code should be using one of ump_chan_bind() or ump_chan_accept().
uc | Storage for channel state |
inbuf | Pointer to incoming message buffer |
inbufsize | Size of inbuf in bytes (must be multiple of UMP message size) |
outbuf | Pointer to outgoing message buffer |
outbufsize | Size of outbuf in bytes (must be multiple of UMP message size) |