Lines Matching defs:ring
423 struct spdk_ring *ring;
427 ring = calloc(1, sizeof(*ring));
428 if (!ring) {
432 if (pthread_mutex_init(&ring->lock, NULL)) {
433 free(ring);
437 TAILQ_INIT(&ring->elements);
438 return ring;
442 spdk_ring_free(struct spdk_ring *ring)
446 if (!ring) {
450 TAILQ_FOREACH_SAFE(ele, &ring->elements, link, tmp) {
454 pthread_mutex_destroy(&ring->lock);
455 free(ring);
460 spdk_ring_enqueue(struct spdk_ring *ring, void **objs, size_t count,
468 pthread_mutex_lock(&ring->lock);
477 TAILQ_INSERT_TAIL(&ring->elements, ele, link);
478 ring->count++;
481 pthread_mutex_unlock(&ring->lock);
487 spdk_ring_dequeue(struct spdk_ring *ring, void **objs, size_t count)
498 pthread_mutex_lock(&ring->lock);
500 TAILQ_FOREACH_SAFE(ele, &ring->elements, link, tmp) {
501 TAILQ_REMOVE(&ring->elements, ele, link);
502 ring->count--;
511 pthread_mutex_unlock(&ring->lock);
519 spdk_ring_count(struct spdk_ring *ring)
522 return ring->count;