aboutsummaryrefslogtreecommitdiffstats
path: root/src/ring.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ring.c')
-rw-r--r--src/ring.c62
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;
+}