Add flag ODPH_RING_NO_LIST to ring to not link it to linked list.

Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>
---
 helper/include/odp/helper/ring.h | 7 ++++---
 helper/ring.c                    | 3 ++-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/helper/include/odp/helper/ring.h b/helper/include/odp/helper/ring.h
index 5e640a7..c3c2f6a 100644
--- a/helper/include/odp/helper/ring.h
+++ b/helper/include/odp/helper/ring.h
@@ -156,10 +156,11 @@ typedef struct odph_ring {
 } odph_ring_t;
 
 
-#define ODPH_RING_F_SP_ENQ 0x0001 /* The default enqueue is 
"single-producer".*/
-#define ODPH_RING_F_SC_DEQ 0x0002 /* The default dequeue is 
"single-consumer".*/
-#define ODPH_RING_SHM_PROC 0x0004 /* If set - ring is visible from different
+#define ODPH_RING_F_SP_ENQ (1 << 0) /* The default enqueue is 
"single-producer".*/
+#define ODPH_RING_F_SC_DEQ (1 << 1) /* The default dequeue is 
"single-consumer".*/
+#define ODPH_RING_SHM_PROC (1 << 2) /* If set - ring is visible from different
                                    processes. Default is thread visible.     */
+#define ODPH_RING_NO_LIST  (1 << 3) /* Do not link ring to linked list. */
 #define ODPH_RING_QUOT_EXCEED (1 << 31)  /* Quota exceed for burst ops */
 #define ODPH_RING_SZ_MASK  (unsigned)(0x0fffffff) /* Ring size mask */
 
diff --git a/helper/ring.c b/helper/ring.c
index 6bb2bda..fe01c5d 100644
--- a/helper/ring.c
+++ b/helper/ring.c
@@ -199,7 +199,8 @@ odph_ring_create(const char *name, unsigned count, unsigned 
flags)
                r->prod.tail = 0;
                r->cons.tail = 0;
 
-               TAILQ_INSERT_TAIL(&odp_ring_list, r, next);
+               if (!(flags & ODPH_RING_NO_LIST))
+                       TAILQ_INSERT_TAIL(&odp_ring_list, r, next);
        } else {
                ODPH_ERR("Cannot reserve memory\n");
        }
-- 
1.9.1

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to