Skip to content

Commit

Permalink
added mbuf_remove_range() to remove data other than at index 0
Browse files Browse the repository at this point in the history
  • Loading branch information
rtrue983 committed May 9, 2019
1 parent 986d287 commit 59bd8b8
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
3 changes: 3 additions & 0 deletions include/mgos_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ void mgos_system_restart_after(int delay_ms);
/* Return random number in a given range. */
float mgos_rand_range(float from, float to);

/* Removes 'data_size' bytes from index of the buffer */
size_t mbuf_remove_range(struct mbuf *, size_t index, size_t data_size);

#ifdef __cplusplus
}
#endif
16 changes: 16 additions & 0 deletions src/mgos_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,22 @@ float mgos_rand_range(float from, float to) {
return from + (((float) (to - from)) / RAND_MAX * rand());
}


size_t mbuf_remove_range(struct mbuf *mb, size_t i, size_t n) WEAK;
size_t mbuf_remove_range(struct mbuf *mb, size_t i, size_t n) {
size_t ret = 0;
if (n > 0 && n <= (mb->len - i)) {
memmove(&mb->buf[i], &mb->buf[i] + n, mb->len - n);
mb->len -= n;
ret = n;
}
else if (n > 0 && n >= (mb->len - i)) {
ret = mb->len - i;
mb->len -= ret;
}
return ret;
}

#if CS_ENABLE_STDIO
/*
* Intended for ffi
Expand Down

0 comments on commit 59bd8b8

Please sign in to comment.