blob: 662ae09578c86a053c9ed4ab032a1fb3a4dac098 [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
Christina Quast2b8a18b2015-04-12 09:31:36 +02008#define RING_BUFLEN 1024
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 */