diff options
| author | Grissiom <[email protected]> | 2013-05-08 15:54:30 +0800 |
|---|---|---|
| committer | Grissiom <[email protected]> | 2013-05-08 15:54:30 +0800 |
| commit | 952bc0d4ef04d2152954df18b534ba82f3d91468 (patch) | |
| tree | acbd36499c35f8320b33c8722721e76268086c78 /components/drivers | |
| parent | 639bd30321bf55b4ea44f55ff2e753f3a270b51a (diff) | |
ringbuffer: format the code to a more symmetric structure
Diffstat (limited to 'components/drivers')
| -rw-r--r-- | components/drivers/src/ringbuffer.c | 58 |
1 files 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 <rtthread.h> @@ -78,33 +79,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 */ rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, @@ -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); @@ -153,6 +126,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 */ rt_size_t rt_ringbuffer_getchar(struct rt_ringbuffer *rb, rt_uint8_t *ch) @@ -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); + |
