|
@@ -161,4 +161,15 @@ static inline int queue_item_iterator_next (struct queue *queue)
|
|
|
return (queue->iterator == queue->head);
|
|
return (queue->iterator == queue->head);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static inline void queue_avail (struct queue *queue, int *avail)
|
|
|
|
|
+{
|
|
|
|
|
+ if (queue->head < queue->tail) {
|
|
|
|
|
+ *avail = queue->size - (queue->head + queue->size - queue->tail);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ *avail = queue->size - (queue->head - queue->tail);
|
|
|
|
|
+ }
|
|
|
|
|
+ *avail -= 1;
|
|
|
|
|
+ assert (*avail >= 0);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
#endif /* QUEUE_H_DEFINED */
|
|
#endif /* QUEUE_H_DEFINED */
|