|
Barrelfish
|
Unidirectional bulk data transfer via shared memory. More...
Functions | |
| errval_t | bulk_channel_create (struct bulk_channel *channel, struct bulk_endpoint_descriptor *local_ep_desc, struct bulk_channel_callbacks *callbacks, struct bulk_channel_setup *setup) |
| errval_t | bulk_channel_bind (struct bulk_channel *channel, struct bulk_endpoint_descriptor *remote_ep_desc, struct bulk_channel_callbacks *callbacks, struct bulk_channel_bind_params *params, struct bulk_continuation cont) |
| errval_t | bulk_channel_destroy (struct bulk_channel *channel, struct bulk_continuation cont) |
| errval_t | bulk_channel_assign_pool (struct bulk_channel *channel, struct bulk_pool *pool, struct bulk_continuation cont) |
| errval_t | bulk_channel_remove_pool (struct bulk_channel *channel, struct bulk_pool *pool, struct bulk_continuation cont) |
| errval_t | bulk_channel_move (struct bulk_channel *channel, struct bulk_buffer *buffer, void *meta, struct bulk_continuation cont) |
| errval_t | bulk_channel_pass (struct bulk_channel *channel, struct bulk_buffer *buffer, void *meta, struct bulk_continuation cont) |
| errval_t | bulk_channel_copy (struct bulk_channel *channel, struct bulk_buffer *buffer, void *meta, struct bulk_continuation cont) |
| errval_t | bulk_channel_release (struct bulk_channel *channel, struct bulk_buffer *buffer, struct bulk_continuation cont) |
Unidirectional bulk data transfer via shared memory.
| errval_t bulk_channel_assign_pool | ( | struct bulk_channel * | channel, |
| struct bulk_pool * | pool, | ||
| struct bulk_continuation | cont | ||
| ) |
Assign a pool to a channel.
| channel | Channel |
| pool | Pool to assign (must not be assigned to this channel yet) |
| errval_t bulk_channel_bind | ( | struct bulk_channel * | channel, |
| struct bulk_endpoint_descriptor * | remote_ep_desc, | ||
| struct bulk_channel_callbacks * | callbacks, | ||
| struct bulk_channel_bind_params * | params, | ||
| struct bulk_continuation | cont | ||
| ) |
Bind to an existing unbound channel.
| channel | Pointer to unused channel handle |
| ep_desc | Description of the remote endpoint to bind to |
| callbacks | Callbacks for events on this channel |
| params | bind parameters |
| errval_t bulk_channel_copy | ( | struct bulk_channel * | channel, |
| struct bulk_buffer * | buffer, | ||
| void * | meta, | ||
| struct bulk_continuation | cont | ||
| ) |
Copy buffer to other endpoint.
| channel | Channel, this endpoint must be source |
| buffer | Buffer, must belong to a pool on this channel. Must hold ownersihp, or hold a copy of this buffer. |
| meta | Pointer to metadata to be passed along with the buffer (channel-wide meta_size is used). |
| cont | event continuation |
| errval_t bulk_channel_create | ( | struct bulk_channel * | channel, |
| struct bulk_endpoint_descriptor * | local_ep_desc, | ||
| struct bulk_channel_callbacks * | callbacks, | ||
| struct bulk_channel_setup * | setup | ||
| ) |
Create a new channel.
| channel | Pointer to unused channel handle |
| ep_desc | Description of endpoint to bind to |
| callbacks | Callbacks for events on this channel |
| setup | struct containing the setup information |
| errval_t bulk_channel_destroy | ( | struct bulk_channel * | channel, |
| struct bulk_continuation | cont | ||
| ) |
Free a channel
| channel | Channel to be freed |
| free_resources | Flag if the resources i.e. pools also should be freed |
| errval_t bulk_channel_move | ( | struct bulk_channel * | channel, |
| struct bulk_buffer * | buffer, | ||
| void * | meta, | ||
| struct bulk_continuation | cont | ||
| ) |
Move buffer on the channel. Data and ownership are passed to the other endpoint. After the other endpoint is done with the respective buffer, it can pass it back.
| channel | Channel, this endpoint must be source |
| buffer | Buffer, must hold ownership and belong to a pool on this channel |
| meta | Pointer to metadata to be passed along with the data (channel-wide meta_size is used). |
| cont | event continuation |
| errval_t bulk_channel_pass | ( | struct bulk_channel * | channel, |
| struct bulk_buffer * | buffer, | ||
| void * | meta, | ||
| struct bulk_continuation | cont | ||
| ) |
Pass buffer ownership to the other endpoint, the buffer contents are not guaranteed to be transported.
| channel | Channel |
| buffer | Buffer, must hold ownership and belong to a pool on this channel |
| meta | Pointer to metadata to be passed along with the buffer (channel-wide meta_size is used). |
| cont | event continuation |
| errval_t bulk_channel_release | ( | struct bulk_channel * | channel, |
| struct bulk_buffer * | buffer, | ||
| struct bulk_continuation | cont | ||
| ) |
Release copy received over channel. Must only be called after all outgoing copies from this domain of the same buffer have been released.
| channel | Channel, this endpoint must be sink |
| buffer | Buffer, must have received it as a copy over this channel, all outgoing copies must have been released. |
| cont | event continuation |
| errval_t bulk_channel_remove_pool | ( | struct bulk_channel * | channel, |
| struct bulk_pool * | pool, | ||
| struct bulk_continuation | cont | ||
| ) |
Remove a pool from a channel
| channel | Channel |
| pool | Pool to remove (must be previously assigned to the channel) |
1.8.11