chiark / gitweb /
serialmgr: Look for things in /usr, not /usr/local
[sympathy.git] / src / ring.c
index ccd97edc426f2d281e64ce4f46b09688c30a2148..24f0faeae543d531003c245cb7ef16c565683349 100644 (file)
@@ -1,15 +1,30 @@
-/*
+/* 
  * ring.c:
  *
- * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
+ * Copyright (c) 2008 James McKenzie <sympathy@madingley.org>,
  * 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 ***
  *
@@ -28,15 +43,14 @@ ring_read (Ring * r, void *b, int n)
 {
   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;
 }
@@ -46,26 +60,46 @@ ring_write (Ring * r, void *b, int n)
 {
   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;
 }
 
+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 *ret = (Ring *) malloc (sizeof (Ring));
-  ret->ring = (uint8_t *) malloc (n);
+  Ring *ret = (Ring *) xmalloc (sizeof (Ring));
+  ret->ring = (uint8_t *) xmalloc (n);
   ret->size = n;
   ret->wptr = ret->rptr = 0;