4 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
15 * Revision 1.1 2008/02/08 15:06:42 james
16 * *** empty log message ***
30 #define RING_NEXT(r,a) (((a)+1) % ((r)->size))
31 #define RING_NEXT_R(r) RING_NEXT(r,r->rptr)
32 #define RING_NEXT_W(r) RING_NEXT(r,r->wptr)
34 #define RING_EMPTY(r) (((r)->wptr) == ((r)->rptr))
35 #define RING_FULL(r) (RING_NEXT_W(r) == ((r)->rptr))
37 static inline int ring_write_one(Ring *r,uint8_t *c)
39 if (RING_FULL(r)) return 0;
41 r->ring[r->wptr++]=*c;
50 static inline int ring_read_one(Ring *r,uint8_t *c)
52 if (RING_EMPTY(r)) return 0;
54 *c=r->ring[r->rptr++];
65 #endif /* __RING_H__ */