Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org>
---
 helper/include/odp/helper/ring.h | 2 ++
 helper/ring.c                    | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/helper/include/odp/helper/ring.h b/helper/include/odp/helper/ring.h
index 65c32ad..5e640a7 100644
--- a/helper/include/odp/helper/ring.h
+++ b/helper/include/odp/helper/ring.h
@@ -158,6 +158,8 @@ typedef struct odph_ring {
 
 #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
+                                   processes. Default is thread visible.     */
 #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 3122173..844abf7 100644
--- a/helper/ring.c
+++ b/helper/ring.c
@@ -158,8 +158,14 @@ odph_ring_create(const char *name, unsigned count, 
unsigned flags)
        char ring_name[ODPH_RING_NAMESIZE];
        odph_ring_t *r;
        size_t ring_size;
+       uint32_t shm_flag;
        odp_shm_t shm;
 
+       if (flags & ODPH_RING_SHM_PROC)
+               shm_flag = ODP_SHM_PROC;
+       else
+               shm_flag = 0;
+
        /* count must be a power of 2 */
        if (!RING_VAL_IS_POWER_2(count) || (count > ODPH_RING_SZ_MASK)) {
                ODPH_ERR("Requested size is invalid, must be power of 2, and do 
not exceed the size limit %u\n",
@@ -172,7 +178,8 @@ odph_ring_create(const char *name, unsigned count, unsigned 
flags)
 
        odp_rwlock_write_lock(&qlock);
        /* reserve a memory zone for this ring.*/
-       shm = odp_shm_reserve(ring_name, ring_size, ODP_CACHE_LINE_SIZE, 0);
+       shm = odp_shm_reserve(ring_name, ring_size, ODP_CACHE_LINE_SIZE,
+                             shm_flag);
 
        r = odp_shm_addr(shm);
 
-- 
1.9.1

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

Reply via email to