From 952bc0d4ef04d2152954df18b534ba82f3d91468 Mon Sep 17 00:00:00 2001 From: Grissiom Date: Wed, 8 May 2013 15:54:30 +0800 Subject: [PATCH] ringbuffer: format the code to a more symmetric structure --- components/drivers/src/ringbuffer.c | 58 +++++++++++++++-------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/components/drivers/src/ringbuffer.c b/components/drivers/src/ringbuffer.c index efd72d3f84..0ae8abfb54 100644 --- a/components/drivers/src/ringbuffer.c +++ b/components/drivers/src/ringbuffer.c @@ -10,6 +10,7 @@ * Change Logs: * Date Author Notes * 2012-09-30 Bernard first version. + * 2013-05-08 Grissiom reimplement */ #include @@ -77,33 +78,6 @@ rt_size_t rt_ringbuffer_put(struct rt_ringbuffer *rb, } RTM_EXPORT(rt_ringbuffer_put); -/** - * put a character into ring buffer - */ -rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch) -{ - RT_ASSERT(rb != RT_NULL); - - /* whether has enough space */ - if (!RT_RINGBUFFER_EMPTY(rb)) - return 0; - - rb->buffer_ptr[rb->write_index] = ch; - - /* flip mirror */ - if (rb->write_index == rb->buffer_size-1) - { - rb->write_mirror = ~rb->write_mirror; - rb->write_index = 0; - } - else - { - rb->write_index++; - } - return 1; -} -RTM_EXPORT(rt_ringbuffer_putchar); - /** * get data from ring buffer */ @@ -136,7 +110,6 @@ rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, return length; } - /* copy first and second */ memcpy(&ptr[0], &rb->buffer_ptr[rb->read_index], rb->buffer_size - rb->read_index); @@ -152,6 +125,34 @@ rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, } RTM_EXPORT(rt_ringbuffer_get); +/** + * put a character into ring buffer + */ +rt_size_t rt_ringbuffer_putchar(struct rt_ringbuffer *rb, const rt_uint8_t ch) +{ + RT_ASSERT(rb != RT_NULL); + + /* whether has enough space */ + if (!RT_RINGBUFFER_EMPTY(rb)) + return 0; + + rb->buffer_ptr[rb->write_index] = ch; + + /* flip mirror */ + if (rb->write_index == rb->buffer_size-1) + { + rb->write_mirror = ~rb->write_mirror; + rb->write_index = 0; + } + else + { + rb->write_index++; + } + + return 1; +} +RTM_EXPORT(rt_ringbuffer_putchar); + /** * get a character from a ringbuffer */ @@ -179,3 +180,4 @@ rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch) return 1; } RTM_EXPORT(rt_ringbuffer_getchar); + -- GitLab