Lines Matching defs:queue
25 * u_vector is a vector based queue for storing arbitrary
52 int u_vector_init(struct u_vector *queue, uint32_t element_size, uint32_t size);
53 void *u_vector_add(struct u_vector *queue);
54 void *u_vector_remove(struct u_vector *queue);
57 u_vector_length(struct u_vector *queue)
59 return (queue->head - queue->tail) / queue->element_size;
78 u_vector_finish(struct u_vector *queue)
80 free(queue->data);
87 #define u_vector_foreach(elem, queue) \
88 STATIC_ASSERT(__builtin_types_compatible_p(__typeof__(queue), struct u_vector *)); \
89 for (uint32_t __u_vector_offset = (queue)->tail; \
90 elem = (void *)((char *)(queue)->data + (__u_vector_offset & ((queue)->size - 1))), __u_vector_offset < (queue)->head; \
91 __u_vector_offset += (queue)->element_size)