summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/dev.c2
-rw-r--r--src/lib/shm_du_map.c20
2 files changed, 11 insertions, 11 deletions
diff --git a/src/lib/dev.c b/src/lib/dev.c
index 9b29b992..c365a17b 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -531,7 +531,7 @@ int flow_cntl(int fd, int cmd, int oflags)
ssize_t flow_write(int fd, void * buf, size_t count)
{
- size_t index;
+ ssize_t index;
struct rb_entry e;
if (buf == NULL)
diff --git a/src/lib/shm_du_map.c b/src/lib/shm_du_map.c
index 7099b265..a7ec5ac9 100644
--- a/src/lib/shm_du_map.c
+++ b/src/lib/shm_du_map.c
@@ -227,11 +227,11 @@ void shm_du_map_destroy(struct shm_du_map * dum)
free(dum);
}
-int shm_create_du_buff(struct shm_du_map * dum,
- size_t size,
- size_t headspace,
- uint8_t * data,
- size_t len)
+ssize_t shm_create_du_buff(struct shm_du_map * dum,
+ size_t size,
+ size_t headspace,
+ uint8_t * data,
+ size_t len)
{
struct shm_du_buff * sdb;
long blocks = 0;
@@ -239,7 +239,7 @@ int shm_create_du_buff(struct shm_du_map * dum,
int sz2 = headspace + len + sizeof *sdb;
uint8_t * write_pos;
size_t copy_len;
- size_t index;
+ ssize_t index;
if (dum == NULL || data == NULL) {
LOG_DBGF("Bogus input, bugging out.");
@@ -294,7 +294,7 @@ int shm_create_du_buff(struct shm_du_map * dum,
--blocks;
}
- index = *dum->ptr_head - 1;
+ index = (*dum->ptr_head - 1) & (SHM_BLOCKS_IN_MAP - 1);
pthread_mutex_unlock(dum->shm_mutex);
@@ -304,9 +304,9 @@ int shm_create_du_buff(struct shm_du_map * dum,
/* FIXME: this cannot handle packets stretching beyond the ringbuffer border */
int shm_du_map_read_sdu(uint8_t ** dst,
struct shm_du_map * dum,
- size_t idx)
+ ssize_t idx)
{
- size_t len = 0;
+ size_t len = 0;
if (idx > SHM_BLOCKS_IN_MAP)
return -1;
@@ -328,7 +328,7 @@ int shm_du_map_read_sdu(uint8_t ** dst,
return len;
}
-int shm_release_du_buff(struct shm_du_map * dum, size_t idx)
+int shm_release_du_buff(struct shm_du_map * dum, ssize_t idx)
{
long sz;
long blocks = 0;