|
Barrelfish
|
Generic bulk data transfer mechanism. More...
Data Structures | |
| struct | bulk_continuation |
| struct | bulk_implementation |
| struct | bulk_channel_constraints |
| struct | bulk_channel_callbacks |
| struct | bulk_channel |
| struct | bulk_endpoint_descriptor |
| struct | bulk_pool_id |
| struct | bulk_pool |
| struct | bulk_pool_list |
| struct | bulk_buffer |
| struct | bulk_channel_setup |
| struct | bulk_channel_bind_params |
Enumerations |
Functions | |
| errval_t | bulk_channel_create (struct bulk_channel *channel, struct bulk_endpoint_descriptor *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_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_destroy (struct bulk_channel *channel, 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) |
Generic bulk data transfer mechanism.
| enum bulk_buffer_state |
| enum bulk_channel_role |
The role of the domain with respect to the channel.
1) Creation: upon channel creation the role can either be given or generic 2) Binding: The roles are given either Master-Slave or Slave-Master
| Enumerator | |
|---|---|
| BULK_ROLE_GENERIC |
the role of this endpoint depends on the binding side |
| BULK_ROLE_MASTER |
this endpoint is the channel master |
| BULK_ROLE_SLAVE |
this endpoint is the channel slave |
| enum bulk_channel_state |
| enum bulk_trust_level |
| 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) |
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 endpoint to bind to |
| callbacks | Callbacks for events on this channel |
| params | parameters for the binding process |
There is the bind done callback that serves as a continuation for this.
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 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