chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / ring.c
index 310ea64ddae3dd0d9dcbc6224414bc5c49d17425..ca412abc25ead6339627756d04be1e014cd14cf9 100644 (file)
@@ -10,6 +10,15 @@ static char rcsid[] = "$Id$";
 
 /*
  * $Log$
+ * 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 +26,72 @@ 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 *) malloc (sizeof (Ring));
+  ret->ring = (uint8_t *) malloc (n);
+  ret->size = n;
+  ret->wptr = ret->rptr = 0;
 
-return ret;
+  return ret;
 }