19 lines
648 B
C
19 lines
648 B
C
#ifndef __RINGBUF_H
|
|
#define __RINGBUF_H
|
|
|
|
typedef struct ringbuf {
|
|
void *data;
|
|
volatile unsigned int front;
|
|
volatile unsigned int rear;
|
|
volatile unsigned int size;
|
|
} TYPE_RINGBUF;
|
|
|
|
extern int ringbuf_Init(TYPE_RINGBUF *buf, unsigned int buf_size);
|
|
extern int push_ringbuf(TYPE_RINGBUF *buf, void *data, unsigned int len);
|
|
extern int pop_ringbuf(TYPE_RINGBUF *buf, void *data, unsigned int len);
|
|
extern int pop_ringbuf_notmove(TYPE_RINGBUF *buf, void *data, unsigned int len);
|
|
extern int ringbuf_pop_available(TYPE_RINGBUF *buf);
|
|
extern int ringbuf_push_available(TYPE_RINGBUF *buf);
|
|
extern int ringbuf_del(TYPE_RINGBUF *buf);
|
|
|
|
#endif |