diff options
author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-10-25 21:58:21 +0200 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-10-26 08:52:31 +0200 |
commit | 96682a8284cc234207d2ba6a60b8f9939c17834f (patch) | |
tree | 98b523a2f05e0f5777a177bddc1926a7658244fc /include | |
parent | 991470de0c7b59c69dd2de8110ba1ddef042a473 (diff) | |
download | ouroboros-96682a8284cc234207d2ba6a60b8f9939c17834f.tar.gz ouroboros-96682a8284cc234207d2ba6a60b8f9939c17834f.zip |
lib: Revise du buff API towards a memory allocator
This changes the API to the rdrbuff to treat it as a pool memory
allocator. The head and tailspace to allocate in a buffer is now set
system-wide instead of being passed as a parameter.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'include')
-rw-r--r-- | include/ouroboros/shm_rdrbuff.h | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/include/ouroboros/shm_rdrbuff.h b/include/ouroboros/shm_rdrbuff.h index 49551497..dc8418fd 100644 --- a/include/ouroboros/shm_rdrbuff.h +++ b/include/ouroboros/shm_rdrbuff.h @@ -42,18 +42,16 @@ void shm_rdrbuff_destroy(struct shm_rdrbuff * rdrb); void shm_rdrbuff_purge(void); -/* returns the index of the buffer in the DU map */ -ssize_t shm_rdrbuff_write(struct shm_rdrbuff * rdrb, - size_t headspace, - size_t tailspace, - const uint8_t * data, - size_t data_len); +/* Returns block index, a ptr and du_buff. */ +ssize_t shm_rdrbuff_alloc(struct shm_rdrbuff * rdrb, + size_t count, + uint8_t ** ptr, + struct shm_du_buff ** sdb); -ssize_t shm_rdrbuff_write_b(struct shm_rdrbuff * rdrb, - size_t headspace, - size_t tailspace, - const uint8_t * data, - size_t data_len, +ssize_t shm_rdrbuff_alloc_b(struct shm_rdrbuff * rdrb, + size_t count, + uint8_t ** ptr, + struct shm_du_buff ** sdb, const struct timespec * abstime); ssize_t shm_rdrbuff_read(uint8_t ** dst, |