Barrelfish
Functions
bulk_transfer.c File Reference

Unidirectional bulk data transfer via shared memory. More...

Functions

void bulk_destroy (struct bulk_transfer *bt)
 Destroy bulk data transport on shared memory region. More...
 
errval_t bulk_init (void *mem, size_t size, size_t block_size, struct bulk_transfer *bt)
 Initialize bulk data transport on shared memory region. More...
 
errval_t bulk_create (size_t size, size_t block_size, struct capref *shared_mem, struct bulk_transfer *bt)
 Create bulk data transport on allocated shared memory region. More...
 
struct bulk_buf * bulk_alloc (struct bulk_transfer *bt)
 Allocate a buffer from a bulk transfer region. More...
 
void bulk_buf_copy (struct bulk_buf *bb, void *buf, size_t buf_size)
 copy data from a buffer to a bulk buffer More...
 
errval_t bulk_free (struct bulk_transfer *bt, uintptr_t id)
 Frees a buffer to its bulk transfer region. More...
 

Detailed Description

Unidirectional bulk data transfer via shared memory.

Function Documentation

struct bulk_buf* bulk_alloc ( struct bulk_transfer *  bt)

Allocate a buffer from a bulk transfer region.

Parameters
btPointer to state
Returns
Pointer to allocated bulk buffer or NULL on out of memory
void bulk_buf_copy ( struct bulk_buf *  bb,
void *  buf,
size_t  buf_size 
)

copy data from a buffer to a bulk buffer

Parameters
bbbulk buffer to copy the data
buf(source) buffer
buf_sizesize of (source) buffer:
errval_t bulk_create ( size_t  size,
size_t  block_size,
struct capref shared_mem,
struct bulk_transfer *  bt 
)

Create bulk data transport on allocated shared memory region.

Parameters
sizeSize in bytes of shared memory region to allocate
block_sizeSize in bytes of a buffer block
shared_memReturn parameter to allocated shared memory capability
btPointer to bulk transfer state to be filled
Returns
Error value.
void bulk_destroy ( struct bulk_transfer *  bt)

Destroy bulk data transport on shared memory region.

Parameters
btPointer to bulk transfer state to be destroyed
errval_t bulk_free ( struct bulk_transfer *  bt,
uintptr_t  id 
)

Frees a buffer to its bulk transfer region.

Parameters
bufPointer to buffer state
idID of buffer to be freed
errval_t bulk_init ( void *  mem,
size_t  size,
size_t  block_size,
struct bulk_transfer *  bt 
)

Initialize bulk data transport on shared memory region.

Parameters
memPointer to shared memory region
sizeSize in bytes of region
block_sizeSize in bytes of a buffer block
btPointer to bulk transfer state to be filled
Returns
Error value.