|
Barrelfish
|
Bidirectional UMP channel. More...
Data Structures | |
| struct | ump_chan |
| A bidirectional UMP channel. 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... | |
| 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_chan_destroy (struct ump_chan *uc) |
| Destroy the local state associated with a given channel. | |
| void | ump_init (void) |
| Initialise the UMP channel driver. | |
Bidirectional UMP channel.
| 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) |
1.8.11