Barrelfish
|
Unidirectional bulk data transfer via shared memory. More...
Functions | |
struct bulk_pool * | bulk_pool_domain_list_get (struct bulk_pool_id *id) |
errval_t | bulk_pool_domain_list_insert (struct bulk_pool *pool) |
errval_t | bulk_pool_domain_list_remove (struct bulk_pool *pool) |
int8_t | bulk_pool_cmp_id (struct bulk_pool_id *id1, struct bulk_pool_id *id2) |
uint8_t | bulk_pool_is_assigned (struct bulk_pool *pool, struct bulk_channel *channel) |
struct bulk_pool * | bulk_pool_get (struct bulk_pool_id *id, struct bulk_channel *channel) |
errval_t | bulk_pool_assign (struct bulk_pool *pool, struct bulk_channel *channel) |
errval_t | bulk_pool_remove (struct bulk_pool *pool, struct bulk_channel *channel) |
errval_t | bulk_pool_unmap (struct bulk_pool *pool) |
errval_t | bulk_pool_map (struct bulk_pool *pool) |
errval_t | bulk_pool_init_bufs (struct bulk_pool *pool) |
errval_t | bulk_pool_alloc_with_id (struct bulk_pool **pool, size_t buffer_count, size_t buffer_size, struct bulk_pool_id id) |
errval_t | bulk_pool_alloc (struct bulk_pool **pool, size_t buffer_count, size_t buffer_size) |
errval_t | bulk_pool_dealloc (struct bulk_pool *pool) |
Unidirectional bulk data transfer via shared memory.
errval_t bulk_pool_alloc | ( | struct bulk_pool ** | pool, |
size_t | buffer_count, | ||
size_t | buffer_size | ||
) |
allocates the data structures for the pool with new id.
pool | storage for pointer to newly allocated pool |
buffer_count | the number of buffers in the pool |
buffer_size | the size of a single buffer |
errval_t bulk_pool_alloc_with_id | ( | struct bulk_pool ** | pool, |
size_t | buffer_count, | ||
size_t | buffer_size, | ||
struct bulk_pool_id | id | ||
) |
allocates the data structures for the pool.
pool | storage for pointer to newly allocated pool |
buffer_count | the number of buffers in the pool |
buffer_size | the size of a single buffer |
id | pool id |
errval_t bulk_pool_assign | ( | struct bulk_pool * | pool, |
struct bulk_channel * | channel | ||
) |
adds a pool to a channel's pool list
pool | the pool to assing to the channel |
channel | the channel to assign the the pool to |
int8_t bulk_pool_cmp_id | ( | struct bulk_pool_id * | id1, |
struct bulk_pool_id * | id2 | ||
) |
compares two bulk pool ids
errval_t bulk_pool_dealloc | ( | struct bulk_pool * | pool | ) |
frees up the resources needed by the pool note
pool | the pool to dealloc |
struct bulk_pool* bulk_pool_domain_list_get | ( | struct bulk_pool_id * | id | ) |
returns a pointer to the pool with the given id
id | the id of the pool to look up |
errval_t bulk_pool_domain_list_insert | ( | struct bulk_pool * | pool | ) |
inserts a pool into the domain global bulk pool list
pool | the pool to insert |
errval_t bulk_pool_domain_list_remove | ( | struct bulk_pool * | pool | ) |
removes the pool from the channel's pool list
pool | the poo to remove |
struct bulk_pool* bulk_pool_get | ( | struct bulk_pool_id * | id, |
struct bulk_channel * | channel | ||
) |
gets a pointer to the pool on this channel
id | the poolid we want the pool |
channel | the channel to look for the pools |
errval_t bulk_pool_init_bufs | ( | struct bulk_pool * | pool | ) |
initializes the buffers for a pool given the struct pool is allocated and filled with the num bufs
pool | pointer to a pool with the information |
uint8_t bulk_pool_is_assigned | ( | struct bulk_pool * | pool, |
struct bulk_channel * | channel | ||
) |
checks if a pool already has been assigned to that channel
pool | the bulk pool to check for assignment |
channel | the channel to check for assignment |
errval_t bulk_pool_map | ( | struct bulk_pool * | pool | ) |
Does the mapping of a pool depending on the trust level. Reserves virtual memory, and allocates a memobj for the pool. In the trusted case, the pool is backed with the pool cap and mapped. In the nontrusted case, the pool cap is split into seperate buffer caps and mapped. If there is no pool_cap, only the virtual memory is allocated.
XXX : trust_uninitialized is currently treated like the trusted case, which is probably not the best idea. should we treat it as an error or just ignore it?
pool | the pool to map |
errval_t bulk_pool_remove | ( | struct bulk_pool * | pool, |
struct bulk_channel * | channel | ||
) |
removes the pool from the channel's pool list
pool | the poo to remove |
channel | the channel to remove the pool from |
errval_t bulk_pool_unmap | ( | struct bulk_pool * | pool | ) |
unmaps the entire pool and frees up the entire memory region of the pool.
pool | the pool to unmap |