blob: 801e96b58551634e4717630e00c652c473d4b241 [file] [log] [blame]
Christina Quast4db82e02015-04-11 18:14:41 +02001#ifndef SIMTRACE_RINGBUF_H
2#define SIMTRACE_RINGBUF_H
3
4#include <stdint.h>
5#include <stdbool.h>
6#include <sys/types.h>
7
Harald Welteb8f94502016-03-18 10:33:31 +01008#define RING_BUFLEN 128
Christina Quast4db82e02015-04-11 18:14:41 +02009
10typedef struct ringbuf {
Harald Welte7dd3dfd2016-03-03 12:32:04 +010011 uint8_t buf[RING_BUFLEN];
12 size_t ird;
13 size_t iwr;
Christina Quast4db82e02015-04-11 18:14:41 +020014} ringbuf;
15
Harald Welte7dd3dfd2016-03-03 12:32:04 +010016void rbuf_reset(volatile ringbuf * rb);
17uint8_t rbuf_read(volatile ringbuf * rb);
18uint8_t rbuf_peek(volatile ringbuf * rb);
19void rbuf_write(volatile ringbuf * rb, uint8_t item);
20bool rbuf_is_empty(volatile ringbuf * rb);
21bool rbuf_is_full(volatile ringbuf * rb);
Christina Quast4db82e02015-04-11 18:14:41 +020022
23#endif /* end of include guard: SIMTRACE_RINGBUF_H */