1 #ifndef __LUNAIX_FLIPBUF_H
2 #define __LUNAIX_FLIPBUF_H
4 #include <lunaix/types.h>
5 #include <lunaix/spike.h>
11 unsigned long half_size;
14 #define DEFINE_FLIPBUF(name, halfsz, buf_) \
15 struct flipbuf name = { .buf=buf_, .top=buf_, .half_size=halfsz }
18 flipbuf_under(struct flipbuf* fbuf)
22 off = __ptr(fbuf->top);
23 off += fbuf->half_size;
24 off %= fbuf->half_size;
25 off += __ptr(fbuf->buf);
31 flipbuf_top(struct flipbuf* fbuf)
37 flipbuf_flip(struct flipbuf* fbuf)
39 fbuf->top = flipbuf_under(fbuf);
43 #endif /* __LUNAIX_FLIPBUF_H */