diff options
| author | Dan Halbert <halbert@halwitz.org> | 2020-04-21 22:40:12 -0400 |
|---|---|---|
| committer | Dan Halbert <halbert@halwitz.org> | 2020-04-21 22:40:12 -0400 |
| commit | fbc8719fadbffd9b3e4ba1ceb42182c4370d0621 (patch) | |
| tree | a5cc1cda9749f4748786ec86512567d49455fe71 /py | |
| parent | 77cd93ac2d8ebce240055caf81f1b6bdd7c9bfcc (diff) | |
ringbuf tested
Diffstat (limited to 'py')
| -rw-r--r-- | py/ringbuf.c | 10 | ||||
| -rw-r--r-- | py/ringbuf.h | 5 |
2 files changed, 11 insertions, 4 deletions
diff --git a/py/ringbuf.c b/py/ringbuf.c index 70245461f..c19f1d44b 100644 --- a/py/ringbuf.c +++ b/py/ringbuf.c @@ -37,6 +37,12 @@ bool ringbuf_alloc(ringbuf_t *r, size_t capacity, bool long_lived) { return r->buf != NULL; } +void ringbuf_free(ringbuf_t *r) { + gc_free(r->buf); + r->size = 0; + ringbuf_clear(r); +} + size_t ringbuf_capacity(ringbuf_t *r) { return r->size - 1; } @@ -72,12 +78,12 @@ void ringbuf_clear(ringbuf_t *r) { } // Number of free slots that can be written. -size_t ringbuf_free(ringbuf_t *r) { +size_t ringbuf_num_empty(ringbuf_t *r) { return (r->size + r->iget - r->iput - 1) % r->size; } // Number of bytes available to read. -size_t ringbuf_avail(ringbuf_t *r) { +size_t ringbuf_num_filled(ringbuf_t *r) { return (r->size + r->iput - r->iget) % r->size; } diff --git a/py/ringbuf.h b/py/ringbuf.h index 1e01091ab..476bd428f 100644 --- a/py/ringbuf.h +++ b/py/ringbuf.h @@ -45,12 +45,13 @@ typedef struct _ringbuf_t { // ringbuf_t buf = {buf_array, sizeof(buf_array)}; bool ringbuf_alloc(ringbuf_t *r, size_t capacity, bool long_lived); +void ringbuf_free(ringbuf_t *r); size_t ringbuf_capacity(ringbuf_t *r); int ringbuf_get(ringbuf_t *r); int ringbuf_put(ringbuf_t *r, uint8_t v); void ringbuf_clear(ringbuf_t *r); -size_t ringbuf_free(ringbuf_t *r); -size_t ringbuf_avail(ringbuf_t *r); +size_t ringbuf_num_empty(ringbuf_t *r); +size_t ringbuf_num_filled(ringbuf_t *r); size_t ringbuf_put_n(ringbuf_t* r, uint8_t* buf, size_t bufsize); size_t ringbuf_get_n(ringbuf_t* r, uint8_t* buf, size_t bufsize); |
