chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / ring.c
1 /*
2  * ring.c:
3  *
4  * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
5  * All rights reserved.
6  *
7  */
8
9 static char rcsid[] = "$Id$";
10
11 /*
12  * $Log$
13  * Revision 1.3  2008/02/13 09:12:21  james
14  * *** empty log message ***
15  *
16  * Revision 1.2  2008/02/12 22:36:46  james
17  * *** empty log message ***
18  *
19  * Revision 1.1  2008/02/08 15:06:42  james
20  * *** empty log message ***
21  *
22  */
23
24 #include "project.h"
25
26 int
27 ring_read (Ring * r, void *b, int n)
28 {
29   int red = 0;
30
31   while (n--)
32     {
33
34       if (!ring_read_one (r, b))
35         break;
36
37       b++;
38       red++;
39     }
40
41   return red;
42 }
43
44 int
45 ring_write (Ring * r, void *b, int n)
46 {
47   int writ = 0;
48
49   while (n--)
50     {
51
52       if (!ring_write_one (r, b))
53         break;
54
55       b++;
56       writ++;
57     }
58
59   return writ;
60 }
61
62
63
64 Ring *
65 ring_new (int n)
66 {
67   Ring *ret = (Ring *) malloc (sizeof (Ring));
68   ret->ring = (uint8_t *) malloc (n);
69   ret->size = n;
70   ret->wptr = ret->rptr = 0;
71
72   return ret;
73 }