123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * ringbuf.h
- *
- * Created on: Apr 22, 2016
- * Author: liuhan
- */
- #ifndef _ESPCONN_BUF_H_
- #define _ESPCONN_BUF_H_
- /*
- * ringbuffer.c
- *
- * Created on: Apr 22, 2016
- * Author: liuhan
- */
- #include "c_types.h"
- #include "ets_sys.h"
- #include "os_type.h"
- typedef struct ringbuf_t {
- uint8_t *buf;
- uint8_t *head, *tail;
- size_t size;
- } ringbuf, *ringbuf_t;
- ringbuf_t ringbuf_new(size_t capacity);
- size_t ringbuf_buffer_size(const struct ringbuf_t *rb);
- void ringbuf_reset(ringbuf_t rb);
- void ringbuf_free(ringbuf_t *rb);
- size_t ringbuf_capacity(const struct ringbuf_t *rb);
- size_t ringbuf_bytes_free(const struct ringbuf_t *rb);
- size_t ringbuf_bytes_used(const struct ringbuf_t *rb);
- int ringbuf_is_full(const struct ringbuf_t *rb);
- int ringbuf_is_empty(const struct ringbuf_t *rb);
- const void* ringbuf_tail(const struct ringbuf_t *rb);
- const void* ringbuf_head(const struct ringbuf_t *rb);
- static uint8_t *ringbuf_nextp(ringbuf_t rb, const uint8_t *p);
- size_t ringbuf_findchr(const struct ringbuf_t *rb, int c, size_t offset);
- size_t ringbuf_memset(ringbuf_t dst, int c, size_t len);
- void *ringbuf_memcpy_into(ringbuf_t dst, const void *src, size_t count);
- void *ringbuf_memcpy_from(void *dst, ringbuf_t src, size_t count);
- #endif /* RINGBUF_H_ */
|