Lines Matching full:f
37 UNUSED static void fifo_clear(fifo_t * f) in fifo_clear() argument
39 f->end = f->begin = 0; in fifo_clear()
42 UNUSED static void * fifo_reserve(fifo_t * f, FIFO_SIZE_T n) in fifo_reserve() argument
44 n *= f->item_size; in fifo_reserve()
46 if (f->begin == f->end) in fifo_reserve()
47 fifo_clear(f); in fifo_reserve()
50 if (f->end + n <= f->allocation) { in fifo_reserve()
51 void *p = f->data + f->end; in fifo_reserve()
53 f->end += n; in fifo_reserve()
56 if (f->begin > FIFO_MIN) { in fifo_reserve()
57 memmove(f->data, f->data + f->begin, f->end - f->begin); in fifo_reserve()
58 f->end -= f->begin; in fifo_reserve()
59 f->begin = 0; in fifo_reserve()
62 f->allocation += n; in fifo_reserve()
63 f->data = lsx_realloc(f->data, f->allocation); in fifo_reserve()
67 UNUSED static void * fifo_write(fifo_t * f, FIFO_SIZE_T n, void const * data) in fifo_write() argument
69 void * s = fifo_reserve(f, n); in fifo_write()
71 memcpy(s, data, n * f->item_size); in fifo_write()
75 UNUSED static void fifo_trim_to(fifo_t * f, FIFO_SIZE_T n) in fifo_trim_to() argument
77 n *= f->item_size; in fifo_trim_to()
78 f->end = f->begin + n; in fifo_trim_to()
81 UNUSED static void fifo_trim_by(fifo_t * f, FIFO_SIZE_T n) in fifo_trim_by() argument
83 n *= f->item_size; in fifo_trim_by()
84 f->end -= n; in fifo_trim_by()
87 UNUSED static FIFO_SIZE_T fifo_occupancy(fifo_t * f) in fifo_occupancy() argument
89 return (f->end - f->begin) / f->item_size; in fifo_occupancy()
92 UNUSED static void * fifo_read(fifo_t * f, FIFO_SIZE_T n, void * data) in fifo_read() argument
94 char * ret = f->data + f->begin; in fifo_read()
95 n *= f->item_size; in fifo_read()
96 if (n > (FIFO_SIZE_T)(f->end - f->begin)) in fifo_read()
100 f->begin += n; in fifo_read()
104 #define fifo_read_ptr(f) fifo_read(f, (FIFO_SIZE_T)0, NULL) argument
106 UNUSED static void fifo_delete(fifo_t * f) in fifo_delete() argument
108 free(f->data); in fifo_delete()
111 UNUSED static void fifo_create(fifo_t * f, FIFO_SIZE_T item_size) in fifo_create() argument
113 f->item_size = item_size; in fifo_create()
114 f->allocation = FIFO_MIN; in fifo_create()
115 f->data = lsx_malloc(f->allocation); in fifo_create()
116 fifo_clear(f); in fifo_create()