Data Structures |
struct | buffer_pool_t |
struct | buffer_stream_t |
struct | buffer_t |
Defines |
#define | BUFFER_ADVANCE(b, more) do{ b->istart += more;}while(0) |
#define | BUFFER_ELSZ(x) (sizeof(buffer_t) + (x)) |
#define | BUFFER_FREE_AT_END(b) (b->len - b->iend) |
#define | BUFFER_FREE_AT_START(b) (b->istart) |
#define | BUFFER_GET_MEMBLOCK(b, pmem, size) |
#define | BUFFER_IS_LOCKED(b) ((b->used&2)!=0) |
#define | BUFFER_IS_USED(b) ((b->used&1)!=0) |
#define | BUFFER_LAST_CHAR(b) (b->iend <= b->istart) ? EOF : (char)b->data[b->iend-1] |
#define | BUFFER_PDATA(b) (b->data + b->istart) |
#define | BUFFER_RESET(b, start) do{ b->iend = b->istart = start;}while(0) |
#define | BUFFER_SEEK(b, offset) (b->data + (b->iend=offset)) |
#define | BUFFER_SET_LOCK(b) do{b->used|=2;}while(0) |
#define | BUFFER_SET_UNLOCK(b) do{b->used&=~2;}while(0) |
#define | BUFFER_SET_UNUSED(b) do{b->used&=~1;}while(0) |
#define | BUFFER_SET_USED(b) do{b->used|=1;}while(0) |
#define | BUFFER_SIZE(b) (b->iend - b->istart) |
#define | BUFFER_UPDATE_MEMBLOCK(b, end) |
Functions |
buffer_t * | buffer_alloc (buffer_pool_t *ppool, uint8_t istart) |
uint8_t | buffer_append_block (buffer_t *b, void *pdata, uint8_t size) |
int | buffer_append_char (buffer_t *b, uint8_t c) |
void | buffer_free (buffer_t *pbuf) |
uint8_t | buffer_get_block (buffer_t *b, void *pdata, uint8_t size) |
int | buffer_get_char (buffer_t *b) |
buffer_t * | buffer_init (void *pmem, uint8_t size, uint8_t start) |
buffer_pool_t * | buffer_pool_init (uint8_t *pmem, size_t memsz, uint8_t bsz) |
uint8_t | buffer_prepend_block (buffer_t *b, void *pdata, uint8_t size) |
int | buffer_prepend_char (buffer_t *b, int c) |
int | buffer_stream_getchar (FILE *f) |
int | buffer_stream_init (buffer_stream_t *pbs, void(*incb)(buffer_t *pbuf), void(*outcb)(buffer_t *pbuf)) |
int | buffer_stream_putchar (char c, FILE *f) |
General Purpose Buffers.