diff options
Diffstat (limited to 'src/ring.c')
-rw-r--r-- | src/ring.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/ring.c b/src/ring.c new file mode 100644 index 0000000..310ea64 --- /dev/null +++ b/src/ring.c @@ -0,0 +1,62 @@ +/* + * ring.c: + * + * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>, + * All rights reserved. + * + */ + +static char rcsid[] = "$Id$"; + +/* + * $Log$ + * Revision 1.1 2008/02/08 15:06:42 james + * *** empty log message *** + * + */ + +#include "project.h" + +int ring_read(Ring *r,void *b,int n) +{ +int red=0; + +while (n--) { + +if (!ring_read_one(r,b)) + break; + +b++; +red++; +} + +return red; +} + +int ring_write(Ring *r,void *b,int n) +{ +int writ=0; + +while (n--) { + +if (!ring_write_one(r,b)) + break; + +b++; +writ++; +} + +return writ; +} + + + +Ring *ring_new(int n) +{ +Ring *ret=(Ring *)malloc(sizeof(Ring)); +ret->buf=(uint8_t *)malloc(n); +ret->size=n; +ret->wptr=ret->rptr=0; + +return ret; +} |