Lines Matching refs:gb
152 static int gs_buf_alloc(struct gs_buf *gb, unsigned size) in gs_buf_alloc() argument
154 gb->buf_buf = kmalloc(size, GFP_KERNEL); in gs_buf_alloc()
155 if (gb->buf_buf == NULL) in gs_buf_alloc()
158 gb->buf_size = size; in gs_buf_alloc()
159 gb->buf_put = gb->buf_buf; in gs_buf_alloc()
160 gb->buf_get = gb->buf_buf; in gs_buf_alloc()
170 static void gs_buf_free(struct gs_buf *gb) in gs_buf_free() argument
172 kfree(gb->buf_buf); in gs_buf_free()
173 gb->buf_buf = NULL; in gs_buf_free()
181 static void gs_buf_clear(struct gs_buf *gb) in gs_buf_clear() argument
183 gb->buf_get = gb->buf_put; in gs_buf_clear()
193 static unsigned gs_buf_data_avail(struct gs_buf *gb) in gs_buf_data_avail() argument
195 return (gb->buf_size + gb->buf_put - gb->buf_get) % gb->buf_size; in gs_buf_data_avail()
204 static unsigned gs_buf_space_avail(struct gs_buf *gb) in gs_buf_space_avail() argument
206 return (gb->buf_size + gb->buf_get - gb->buf_put - 1) % gb->buf_size; in gs_buf_space_avail()
218 gs_buf_put(struct gs_buf *gb, const char *buf, unsigned count) in gs_buf_put() argument
222 len = gs_buf_space_avail(gb); in gs_buf_put()
229 len = gb->buf_buf + gb->buf_size - gb->buf_put; in gs_buf_put()
231 memcpy(gb->buf_put, buf, len); in gs_buf_put()
232 memcpy(gb->buf_buf, buf+len, count - len); in gs_buf_put()
233 gb->buf_put = gb->buf_buf + count - len; in gs_buf_put()
235 memcpy(gb->buf_put, buf, count); in gs_buf_put()
237 gb->buf_put += count; in gs_buf_put()
239 gb->buf_put = gb->buf_buf; in gs_buf_put()
254 gs_buf_get(struct gs_buf *gb, char *buf, unsigned count) in gs_buf_get() argument
258 len = gs_buf_data_avail(gb); in gs_buf_get()
265 len = gb->buf_buf + gb->buf_size - gb->buf_get; in gs_buf_get()
267 memcpy(buf, gb->buf_get, len); in gs_buf_get()
268 memcpy(buf+len, gb->buf_buf, count - len); in gs_buf_get()
269 gb->buf_get = gb->buf_buf + count - len; in gs_buf_get()
271 memcpy(buf, gb->buf_get, count); in gs_buf_get()
273 gb->buf_get += count; in gs_buf_get()
275 gb->buf_get = gb->buf_buf; in gs_buf_get()