anv/util: Add helpers for getting the first and last elements of a vector
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 22 Sep 2015 00:12:58 +0000 (17:12 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 28 Sep 2015 23:01:01 +0000 (16:01 -0700)
src/vulkan/anv_private.h

index 6b9b12fd8ecca42ef428d05c51fb06564efedffa..915460dadf4acd481355270acc028d94c4a65003 100644 (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)
 {