Lines Matching refs:me
23 int bipbuf_unused(const bipbuf_t* me) in bipbuf_unused() argument
25 if (1 == me->b_inuse) in bipbuf_unused()
27 return me->a_start - me->b_end; in bipbuf_unused()
29 return me->size - me->a_end; in bipbuf_unused()
32 int bipbuf_size(const bipbuf_t* me) in bipbuf_size() argument
34 return me->size; in bipbuf_size()
37 int bipbuf_used(const bipbuf_t* me) in bipbuf_used() argument
39 return (me->a_end - me->a_start) + me->b_end; in bipbuf_used()
42 void bipbuf_init(bipbuf_t* me, const unsigned int size) in bipbuf_init() argument
44 me->a_start = me->a_end = me->b_end = 0; in bipbuf_init()
45 me->size = size; in bipbuf_init()
46 me->b_inuse = 0; in bipbuf_init()
51 bipbuf_t *me = malloc(bipbuf_sizeof(size)); in bipbuf_new() local
52 if (!me) in bipbuf_new()
54 bipbuf_init(me, size); in bipbuf_new()
55 return me; in bipbuf_new()
58 void bipbuf_free(bipbuf_t* me) in bipbuf_free() argument
60 free(me); in bipbuf_free()
63 int bipbuf_is_empty(const bipbuf_t* me) in bipbuf_is_empty() argument
65 return me->a_start == me->a_end; in bipbuf_is_empty()
70 static void __check_for_switch_to_b(bipbuf_t* me) in __check_for_switch_to_b() argument
72 if (me->size - me->a_end < me->a_start - me->b_end) in __check_for_switch_to_b()
73 me->b_inuse = 1; in __check_for_switch_to_b()
77 unsigned char *bipbuf_request(bipbuf_t* me, const int size) in bipbuf_request() argument
79 if (bipbuf_unused(me) < size) in bipbuf_request()
81 if (1 == me->b_inuse) in bipbuf_request()
83 return (unsigned char *)me->data + me->b_end; in bipbuf_request()
87 return (unsigned char *)me->data + me->a_end; in bipbuf_request()
91 int bipbuf_push(bipbuf_t* me, const int size) in bipbuf_push() argument
93 if (bipbuf_unused(me) < size) in bipbuf_push()
96 if (1 == me->b_inuse) in bipbuf_push()
98 me->b_end += size; in bipbuf_push()
102 me->a_end += size; in bipbuf_push()
105 __check_for_switch_to_b(me); in bipbuf_push()
109 int bipbuf_offer(bipbuf_t* me, const unsigned char *data, const int size) in bipbuf_offer() argument
112 if (bipbuf_unused(me) < size) in bipbuf_offer()
115 if (1 == me->b_inuse) in bipbuf_offer()
117 memcpy(me->data + me->b_end, data, size); in bipbuf_offer()
118 me->b_end += size; in bipbuf_offer()
122 memcpy(me->data + me->a_end, data, size); in bipbuf_offer()
123 me->a_end += size; in bipbuf_offer()
126 __check_for_switch_to_b(me); in bipbuf_offer()
130 unsigned char *bipbuf_peek(const bipbuf_t* me, const unsigned int size) in bipbuf_peek() argument
133 if (me->size < me->a_start + size) in bipbuf_peek()
136 if (bipbuf_is_empty(me)) in bipbuf_peek()
139 return (unsigned char *)me->data + me->a_start; in bipbuf_peek()
142 unsigned char *bipbuf_peek_all(const bipbuf_t* me, unsigned int *size) in bipbuf_peek_all() argument
144 if (bipbuf_is_empty(me)) in bipbuf_peek_all()
147 *size = me->a_end - me->a_start; in bipbuf_peek_all()
148 return (unsigned char*)me->data + me->a_start; in bipbuf_peek_all()
151 unsigned char *bipbuf_poll(bipbuf_t* me, const unsigned int size) in bipbuf_poll() argument
153 if (bipbuf_is_empty(me)) in bipbuf_poll()
157 if (me->size < me->a_start + size) in bipbuf_poll()
160 void *end = me->data + me->a_start; in bipbuf_poll()
161 me->a_start += size; in bipbuf_poll()
164 if (me->a_start == me->a_end) in bipbuf_poll()
167 if (1 == me->b_inuse) in bipbuf_poll()
169 me->a_start = 0; in bipbuf_poll()
170 me->a_end = me->b_end; in bipbuf_poll()
171 me->b_end = me->b_inuse = 0; in bipbuf_poll()
175 me->a_start = me->a_end = 0; in bipbuf_poll()
178 __check_for_switch_to_b(me); in bipbuf_poll()