X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fring.c;h=24f0faeae543d531003c245cb7ef16c565683349;hb=f9b2fb4e78b36b812f476efad47eccb26a12bffe;hp=310ea64ddae3dd0d9dcbc6224414bc5c49d17425;hpb=cb8fb02869f855c49227af8f4ea52016b316134b;p=sympathy.git diff --git a/src/ring.c b/src/ring.c index 310ea64..24f0fae 100644 --- a/src/ring.c +++ b/src/ring.c @@ -1,15 +1,36 @@ -/* +/* * ring.c: * - * Copyright (c) 2008 James McKenzie , + * Copyright (c) 2008 James McKenzie , * All rights reserved. * */ -static char rcsid[] = "$Id$"; +static char rcsid[] = "$Id: ring.c,v 1.8 2008/03/07 13:16:02 james Exp $"; -/* - * $Log$ +/* + * $Log: ring.c,v $ + * Revision 1.8 2008/03/07 13:16:02 james + * *** empty log message *** + * + * Revision 1.7 2008/03/07 12:37:04 james + * *** empty log message *** + * + * Revision 1.6 2008/03/03 06:04:42 james + * *** empty log message *** + * + * Revision 1.5 2008/03/02 10:37:56 james + * *** empty log message *** + * + * Revision 1.4 2008/02/13 16:57:29 james + * *** empty log message *** + * + * Revision 1.3 2008/02/13 09:12:21 james + * *** empty log message *** + * + * Revision 1.2 2008/02/12 22:36:46 james + * *** empty log message *** + * * Revision 1.1 2008/02/08 15:06:42 james * *** empty log message *** * @@ -17,46 +38,70 @@ static char rcsid[] = "$Id$"; #include "project.h" -int ring_read(Ring *r,void *b,int n) +int +ring_read (Ring * r, void *b, int n) { -int red=0; + int red = 0; -while (n--) { + while (n--) { -if (!ring_read_one(r,b)) - break; + if (!ring_read_one (r, b)) + break; -b++; -red++; -} + b++; + red++; + } -return red; + return red; } -int ring_write(Ring *r,void *b,int n) +int +ring_write (Ring * r, void *b, int n) { -int writ=0; + int writ = 0; -while (n--) { + while (n--) { -if (!ring_write_one(r,b)) - break; + if (!ring_write_one (r, b)) + break; -b++; -writ++; + b++; + writ++; + } + + return writ; } -return writ; +int +ring_space (Ring * r) +{ + int i; + + i = r->size - RING_NEXT_W (r) + r->rptr; + i %= r->size; + return i; } +int +ring_bytes (Ring * r) +{ + int i; + + i = r->size + r->wptr - r->rptr; + i %= r->size; + return i; +} + + -Ring *ring_new(int n) +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; + Ring *ret = (Ring *) xmalloc (sizeof (Ring)); + ret->ring = (uint8_t *) xmalloc (n); + ret->size = n; + ret->wptr = ret->rptr = 0; -return ret; + return ret; }