anv/util: Add helpers for getting the first and last elements of a vector

This commit is contained in:
Jason Ekstrand 2015-09-21 17:12:58 -07:00
parent 95487668df
commit 219a1929f7

View file

@ -200,6 +200,21 @@ anv_vector_length(struct anv_vector *queue)
return (queue->head - queue->tail) / queue->element_size;
}
static inline void *
anv_vector_head(struct anv_vector *vector)
{
assert(vector->tail < vector->head);
return (void *)((char *)vector->data +
((vector->head - vector->element_size) &
(vector->size - 1)));
}
static inline void *
anv_vector_tail(struct anv_vector *vector)
{
return (void *)((char *)vector->data + (vector->tail & (vector->size - 1)));
}
static inline void
anv_vector_finish(struct anv_vector *queue)
{