Lines Matching refs:queue
57 int u_vector_init_pow2(struct u_vector *queue,
61 void *u_vector_add(struct u_vector *queue);
62 void *u_vector_remove(struct u_vector *queue);
65 u_vector_init(struct u_vector *queue, in u_vector_init() argument
71 return u_vector_init_pow2(queue, initial_element_count, element_size); in u_vector_init()
75 u_vector_length(struct u_vector *queue) in u_vector_length() argument
77 return (queue->head - queue->tail) / queue->element_size; in u_vector_length()
96 u_vector_finish(struct u_vector *queue) in u_vector_finish() argument
98 free(queue->data); in u_vector_finish()
107 #define u_vector_foreach(elem, queue) \ argument
108 STATIC_ASSERT(__builtin_types_compatible_p(__typeof__(queue), struct u_vector *)); \
109 for (uint32_t __u_vector_offset = (queue)->tail; \
110 elem = u_vector_element_cast(elem)((char *)(queue)->data + \
111 (__u_vector_offset & ((queue)->size - 1))), \
112 __u_vector_offset != (queue)->head; \
113 __u_vector_offset += (queue)->element_size)