chiark / gitweb /
shared: fix coding-style for ring-buffer implementation
authorDavid Herrmann <dh.herrmann@gmail.com>
Wed, 9 Jul 2014 18:20:46 +0000 (20:20 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Fri, 11 Jul 2014 14:43:53 +0000 (16:43 +0200)
We use "typedef struct Ring Ring" with camel-case for internal objects.
So rename "struct ring" to "Ring".

src/shared/ring.c
src/shared/ring.h
src/test/test-ring.c

index 8ae61234c7fb2a08729955676bd2999d0331ae7f..309075e348e53ef21dd59c9f959cac73098237ca 100644 (file)
 
 #define RING_MASK(_r, _v) ((_v) & ((_r)->size - 1))
 
-void ring_flush(struct ring *r) {
+void ring_flush(Ring *r) {
         assert(r);
 
         r->start = 0;
         r->used = 0;
 }
 
-void ring_clear(struct ring *r) {
+void ring_clear(Ring *r) {
+        assert(r);
+
         free(r->buf);
         zero(*r);
 }
@@ -53,7 +55,7 @@ void ring_clear(struct ring *r) {
  *         size_t iov_len;
  *     };
  */
-size_t ring_peek(struct ring *r, struct iovec *vec) {
+size_t ring_peek(Ring *r, struct iovec *vec) {
         assert(r);
 
         if (r->used == 0) {
@@ -80,7 +82,7 @@ size_t ring_peek(struct ring *r, struct iovec *vec) {
  * at most @size bytes. If the ring buffer size is smaller, copy less bytes and
  * return the number of bytes copied.
  */
-size_t ring_copy(struct ring *r, void *buf, size_t size) {
+size_t ring_copy(Ring *r, void *buf, size_t size) {
         size_t l;
 
         assert(r);
@@ -106,7 +108,7 @@ size_t ring_copy(struct ring *r, void *buf, size_t size) {
  * Resize ring-buffer to size @nsize. @nsize must be a power-of-2, otherwise
  * ring operations will behave incorrectly.
  */
-static int ring_resize(struct ring *r, size_t nsize) {
+static int ring_resize(Ring *r, size_t nsize) {
         uint8_t *buf;
         size_t l;
 
@@ -140,7 +142,7 @@ static int ring_resize(struct ring *r, size_t nsize) {
  * resizes the buffer if it is too small. It returns -ENOMEM on OOM and 0 on
  * success.
  */
-static int ring_grow(struct ring *r, size_t add) {
+static int ring_grow(Ring *r, size_t add) {
         size_t need;
 
         assert(r);
@@ -165,7 +167,7 @@ static int ring_grow(struct ring *r, size_t add) {
  * Push @len bytes from @u8 into the ring buffer. The buffer is resized if it
  * is too small. -ENOMEM is returned on OOM, 0 on success.
  */
-int ring_push(struct ring *r, const void *u8, size_t size) {
+int ring_push(Ring *r, const void *u8, size_t size) {
         int err;
         size_t pos, l;
 
@@ -197,7 +199,7 @@ int ring_push(struct ring *r, const void *u8, size_t size) {
  * Remove @len bytes from the start of the ring-buffer. Note that we protect
  * against overflows so removing more bytes than available is safe.
  */
-void ring_pull(struct ring *r, size_t size) {
+void ring_pull(Ring *r, size_t size) {
         assert(r);
 
         if (size > r->used)
index 6b12530e31104ddf106cec76ed9e348fbac681fb..1210aabdf68762a2431844358f888573e71a9126 100644 (file)
@@ -27,7 +27,9 @@
 #include <string.h>
 #include <sys/uio.h>
 
-struct ring {
+typedef struct Ring Ring;
+
+struct Ring {
         uint8_t *buf;           /* buffer or NULL */
         size_t size;            /* actual size of @buf */
         size_t start;           /* start position of ring */
@@ -35,25 +37,25 @@ struct ring {
 };
 
 /* flush buffer so it is empty again */
-void ring_flush(struct ring *r);
+void ring_flush(Ring *r);
 
 /* flush buffer, free allocated data and reset to initial state */
-void ring_clear(struct ring *r);
+void ring_clear(Ring *r);
 
 /* get pointers to buffer data and their length */
-size_t ring_peek(struct ring *r, struct iovec *vec);
+size_t ring_peek(Ring *r, struct iovec *vec);
 
 /* copy data into external linear buffer */
-size_t ring_copy(struct ring *r, void *buf, size_t size);
+size_t ring_copy(Ring *r, void *buf, size_t size);
 
 /* push data to the end of the buffer */
-int ring_push(struct ring *r, const void *u8, size_t size);
+int ring_push(Ring *r, const void *u8, size_t size);
 
 /* pull data from the front of the buffer */
-void ring_pull(struct ring *r, size_t size);
+void ring_pull(Ring *r, size_t size);
 
 /* return size of occupied buffer in bytes */
-static inline size_t ring_get_size(struct ring *r)
+static inline size_t ring_get_size(Ring *r)
 {
         return r->used;
 }
index 880815811cad056dc17e3044f51057a26504fb10..5e4efdbde9a4c53bc3846513fc3fc11391d97c4a 100644 (file)
@@ -31,7 +31,7 @@
 
 static void test_ring(void) {
         static const char buf[8192];
-        struct ring r;
+        Ring r;
         size_t l;
         struct iovec vec[2];
         int s;