Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

Circular Byte-Buffer Structure and Function Library (buffer.c)
[General Libraries]

Detailed Description

 #include "buffer.h" 
This byte-buffer structure provides an easy and efficient way to store and process a stream of bytes.  You can create as many buffers as you like (within memory limits), and then use this common set of functions to access each buffer.  The buffers are designed for FIFO operation (first in, first out).  This means that the first byte you put in the buffer will be the first one you get when you read out the buffer.  Supported functions include buffer initialize, get byte from front of buffer, add byte to end of buffer, check if buffer is full, and flush buffer.  The buffer uses a circular design so no copying of data is ever necessary. This buffer is not dynamically allocated, it has a user-defined fixed maximum size.  This buffer is used in many places in the avrlib code.

Data Structures

struct  struct_cBuffer
 cBuffer structure More...


typedef struct_cBuffer cBuffer
 cBuffer structure


void bufferInit (cBuffer *buffer, unsigned char *start, unsigned short size)
 initialize a buffer to start at a given address and have given size
unsigned char bufferGetFromFront (cBuffer *buffer)
 get the first byte from the front of the buffer
void bufferDumpFromFront (cBuffer *buffer, unsigned short numbytes)
 dump (discard) the first numbytes from the front of the buffer
unsigned char bufferGetAtIndex (cBuffer *buffer, unsigned short index)
 get a byte at the specified index in the buffer (kind of like array access)
unsigned char bufferAddToEnd (cBuffer *buffer, unsigned char data)
 add a byte to the end of the buffer
unsigned short bufferIsNotFull (cBuffer *buffer)
 check if the buffer is full/not full (returns zero value if full)
void bufferFlush (cBuffer *buffer)
 flush (clear) the contents of the buffer

Generated on Sun Oct 29 03:41:09 2006 for Procyon AVRlib by  doxygen 1.4.2