| 
    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