LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
CHIP: Simple ring buffer implementation

Data Structures

struct  RINGBUFF_T
 Ring buffer structure. More...
 

Functions

void RingBuffer_Init (RINGBUFF_T *RingBuff, void *buffer, int itemSize, int count)
 Initialize ring buffer.
 
STATIC INLINE int RingBuffer_GetCount (RINGBUFF_T *RingBuff)
 Return number of items in the ring buffer.
 
STATIC INLINE bool RingBuffer_IsFull (RINGBUFF_T *RingBuff)
 Return number of items in the ring buffer.
 
STATIC INLINE bool RingBuffer_IsEmpty (RINGBUFF_T *RingBuff)
 Return empty status of ring buffer.
 
bool RingBuffer_Insert8 (RINGBUFF_T *RingBuff, uint8_t data8)
 Insert 8-bit value in ring buffer.
 
bool RingBuffer_Insert16 (RINGBUFF_T *RingBuff, uint16_t data16)
 Insert 16-bit value in ring buffer.
 
bool RingBuffer_Insert32 (RINGBUFF_T *RingBuff, uint32_t data32)
 Insert 32-bit value in ring buffer.
 
bool RingBuffer_Pop8 (RINGBUFF_T *RingBuff, uint8_t *data8)
 Pop a 8-bit value from the ring buffer.
 
bool RingBuffer_Pop16 (RINGBUFF_T *RingBuff, uint16_t *data16)
 Pop a 16-bit value from the ring buffer.
 
bool RingBuffer_Pop32 (RINGBUFF_T *RingBuff, uint32_t *data32)
 Pop a 32-bit value from the ring buffer.
 

Detailed Description

Function Documentation

STATIC INLINE int RingBuffer_GetCount ( RINGBUFF_T RingBuff)

Return number of items in the ring buffer.

Parameters
RingBuff: Pointer to ring buffer
Returns
Number of items in the ring buffer

Definition at line 66 of file ring_buffer.h.

void RingBuffer_Init ( RINGBUFF_T RingBuff,
void *  buffer,
int  itemSize,
int  count 
)

Initialize ring buffer.

Parameters
RingBuff: Pointer to ring buffer to initialize
buffer: Pointer to buffer to associate with RingBuff
itemSize: Size of each buffer item size (1, 2 or 4 bytes)
count: Size of ring buffer
Returns
Nothing

Definition at line 51 of file ring_buffer.c.

bool RingBuffer_Insert16 ( RINGBUFF_T RingBuff,
uint16_t  data16 
)

Insert 16-bit value in ring buffer.

Parameters
RingBuff: Pointer to ring buffer
data16: 16-bit value to insert in ring buffer
Returns
true if valid data was inserted, or false if the ring buffer was full

Definition at line 78 of file ring_buffer.c.

bool RingBuffer_Insert32 ( RINGBUFF_T RingBuff,
uint32_t  data32 
)

Insert 32-bit value in ring buffer.

Parameters
RingBuff: Pointer to ring buffer
data32: 32-bit value to insert in ring buffer
Returns
true if valid data was inserted, or false if the ring buffer was full

Definition at line 97 of file ring_buffer.c.

bool RingBuffer_Insert8 ( RINGBUFF_T RingBuff,
uint8_t  data8 
)

Insert 8-bit value in ring buffer.

Parameters
RingBuff: Pointer to ring buffer
data8: Byte to insert in ring buffer
Returns
true if a valid byte was inserted, or false if the ring buffer was full

Definition at line 61 of file ring_buffer.c.

STATIC INLINE bool RingBuffer_IsEmpty ( RINGBUFF_T RingBuff)

Return empty status of ring buffer.

Parameters
RingBuff: Pointer to ring buffer
Returns
true if the ring buffer is empty, otherwise false

Definition at line 86 of file ring_buffer.h.

STATIC INLINE bool RingBuffer_IsFull ( RINGBUFF_T RingBuff)

Return number of items in the ring buffer.

Parameters
RingBuff: Pointer to ring buffer
Returns
true if the ring buffer is full, otherwise false

Definition at line 76 of file ring_buffer.h.

bool RingBuffer_Pop16 ( RINGBUFF_T RingBuff,
uint16_t *  data16 
)

Pop a 16-bit value from the ring buffer.

Parameters
RingBuff: Pointer to ring buffer
data16: Pointer to where to place value
Returns
true if a valid byte was popped, or false if the ring buffer was empty

Definition at line 133 of file ring_buffer.c.

bool RingBuffer_Pop32 ( RINGBUFF_T RingBuff,
uint32_t data32 
)

Pop a 32-bit value from the ring buffer.

Parameters
RingBuff: Pointer to ring buffer
data32: Pointer to where to place value
Returns
true if a valid byte was popped, or false if the ring buffer was empty

Definition at line 152 of file ring_buffer.c.

bool RingBuffer_Pop8 ( RINGBUFF_T RingBuff,
uint8_t *  data8 
)

Pop a 8-bit value from the ring buffer.

Parameters
RingBuff: Pointer to ring buffer
data8: Pointer to where to place value
Returns
true if a valid byte was popped, or false if the ring buffer was empty

Definition at line 116 of file ring_buffer.c.