diff options
| author | Thomas Schmucker <ts@its1.de> | 2020-10-04 14:36:07 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2020-10-04 14:36:07 +0200 |
| commit | 6fb072f62c2f50118dd5cb377d10c76ece51e5fb (patch) | |
| tree | d4572ba16b2ab45a7601b70cdb5811023ac3b390 /ringbuff.c | |
| parent | ace33ff2c18c732e7ac30c49d95f7c35e06d7cee (diff) | |
| download | data-structures-6fb072f62c2f50118dd5cb377d10c76ece51e5fb.tar.gz data-structures-6fb072f62c2f50118dd5cb377d10c76ece51e5fb.tar.bz2 data-structures-6fb072f62c2f50118dd5cb377d10c76ece51e5fb.zip | |
Setze srcut-Marker...
Diffstat (limited to 'ringbuff.c')
| -rw-r--r-- | ringbuff.c | 16 |
1 files changed, 16 insertions, 0 deletions
| @@ -5,19 +5,24 @@ | |||
| 5 | 5 | ||
| 6 | #include "util.h" | 6 | #include "util.h" |
| 7 | 7 | ||
| 8 | /* --8<-- ring_type */ | ||
| 8 | typedef int T; | 9 | typedef int T; |
| 9 | 10 | ||
| 10 | struct ring_buffer { | 11 | struct ring_buffer { |
| 11 | size_t head, tail; | 12 | size_t head, tail; |
| 12 | T array[8]; /* fit for your needs... */ | 13 | T array[8]; /* fit for your needs... */ |
| 13 | }; | 14 | }; |
| 15 | /* -->8-- */ | ||
| 14 | 16 | ||
| 17 | /* --8<-- ring_init */ | ||
| 15 | void | 18 | void |
| 16 | ring_init(struct ring_buffer *rb) | 19 | ring_init(struct ring_buffer *rb) |
| 17 | { | 20 | { |
| 18 | rb->head = rb->tail = 0; | 21 | rb->head = rb->tail = 0; |
| 19 | } | 22 | } |
| 23 | /* -->8-- */ | ||
| 20 | 24 | ||
| 25 | /* --8<-- ring_push_front */ | ||
| 21 | bool | 26 | bool |
| 22 | ring_push_front(struct ring_buffer *rb, T data) | 27 | ring_push_front(struct ring_buffer *rb, T data) |
| 23 | { | 28 | { |
| @@ -31,7 +36,9 @@ ring_push_front(struct ring_buffer *rb, T data) | |||
| 31 | 36 | ||
| 32 | return true; | 37 | return true; |
| 33 | } | 38 | } |
| 39 | /* -->8-- */ | ||
| 34 | 40 | ||
| 41 | /* --8<-- ring_push_back */ | ||
| 35 | bool | 42 | bool |
| 36 | ring_push_back(struct ring_buffer *rb, T data) | 43 | ring_push_back(struct ring_buffer *rb, T data) |
| 37 | { | 44 | { |
| @@ -45,7 +52,9 @@ ring_push_back(struct ring_buffer *rb, T data) | |||
| 45 | 52 | ||
| 46 | return true; | 53 | return true; |
| 47 | } | 54 | } |
| 55 | /* -->8-- */ | ||
| 48 | 56 | ||
| 57 | /* --8<-- ring_pop_front */ | ||
| 49 | bool | 58 | bool |
| 50 | ring_pop_front(struct ring_buffer *rb, T *data) | 59 | ring_pop_front(struct ring_buffer *rb, T *data) |
| 51 | { | 60 | { |
| @@ -59,7 +68,9 @@ ring_pop_front(struct ring_buffer *rb, T *data) | |||
| 59 | 68 | ||
| 60 | return true; | 69 | return true; |
| 61 | } | 70 | } |
| 71 | /* -->8-- */ | ||
| 62 | 72 | ||
| 73 | /* --8<-- ring_pop_back */ | ||
| 63 | bool | 74 | bool |
| 64 | ring_pop_back(struct ring_buffer *rb, T *data) | 75 | ring_pop_back(struct ring_buffer *rb, T *data) |
| 65 | { | 76 | { |
| @@ -73,18 +84,23 @@ ring_pop_back(struct ring_buffer *rb, T *data) | |||
| 73 | 84 | ||
| 74 | return true; | 85 | return true; |
| 75 | } | 86 | } |
| 87 | /* -->8-- */ | ||
| 76 | 88 | ||
| 89 | /* --8<-- ring_put */ | ||
| 77 | bool | 90 | bool |
| 78 | ring_put(struct ring_buffer *rb, T data) | 91 | ring_put(struct ring_buffer *rb, T data) |
| 79 | { | 92 | { |
| 80 | return ring_push_back(rb, data); | 93 | return ring_push_back(rb, data); |
| 81 | } | 94 | } |
| 95 | /* -->8-- */ | ||
| 82 | 96 | ||
| 97 | /* --8<-- ring_get */ | ||
| 83 | bool | 98 | bool |
| 84 | ring_get(struct ring_buffer *rb, T *data) | 99 | ring_get(struct ring_buffer *rb, T *data) |
| 85 | { | 100 | { |
| 86 | return ring_pop_front(rb, data); | 101 | return ring_pop_front(rb, data); |
| 87 | } | 102 | } |
| 103 | /* -->8-- */ | ||
| 88 | 104 | ||
| 89 | void | 105 | void |
| 90 | f() | 106 | f() |
