On 10/19/2015 19:13, Ola Liljedahl wrote:
On 19 October 2015 at 18:07, Maxim Uvarov <[email protected]
<mailto:[email protected]>> wrote:
Add flag ODPH_RING_NO_LIST to ring to not link it to linked list.
And the purpose of this is?
Either we want to be able to look up resources by name or not. Is
there any specific reason why this is a per-object (per-ring)
configuration?
ring used odp_shm_reserve() with the same name. It's possible to find
that name and free. If original core is used then I have to init odp helper
ring list pointer so that all new created odph_rings attached to it. I
found it's ugly and prefer just to not add each link to that linked list.
Maxim.
Signed-off-by: Maxim Uvarov <[email protected]
<mailto:[email protected]>>
---
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
[email protected] <mailto:[email protected]>
https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp