eal/linux: truncate thread name
[dpdk.git] / lib / librte_ring / rte_ring_elem.h
index 4030753..69dc517 100644 (file)
@@ -23,9 +23,6 @@ extern "C" {
 #include <rte_ring_core.h>
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Calculate the memory size needed for a ring with given element size
  *
  * This function returns the number of bytes needed for a ring, given
@@ -43,13 +40,9 @@ extern "C" {
  *   - -EINVAL - esize is not a multiple of 4 or count provided is not a
  *              power of 2.
  */
-__rte_experimental
 ssize_t rte_ring_get_memsize_elem(unsigned int esize, unsigned int count);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Create a new ring named *name* that stores elements with given size.
  *
  * This function uses ``memzone_reserve()`` to allocate memory. Then it
@@ -81,6 +74,9 @@ ssize_t rte_ring_get_memsize_elem(unsigned int esize, unsigned int count);
  *      - RING_F_MP_RTS_ENQ: If this flag is set, the default behavior when
  *        using ``rte_ring_enqueue()`` or ``rte_ring_enqueue_bulk()``
  *        is "multi-producer RTS mode".
+ *      - RING_F_MP_HTS_ENQ: If this flag is set, the default behavior when
+ *        using ``rte_ring_enqueue()`` or ``rte_ring_enqueue_bulk()``
+ *        is "multi-producer HTS mode".
  *     If none of these flags is set, then default "multi-producer"
  *     behavior is selected.
  *   - One of mutually exclusive flags that define consumer behavior:
@@ -90,6 +86,9 @@ ssize_t rte_ring_get_memsize_elem(unsigned int esize, unsigned int count);
  *      - RING_F_MC_RTS_DEQ: If this flag is set, the default behavior when
  *        using ``rte_ring_dequeue()`` or ``rte_ring_dequeue_bulk()``
  *        is "multi-consumer RTS mode".
+ *      - RING_F_MC_HTS_DEQ: If this flag is set, the default behavior when
+ *        using ``rte_ring_dequeue()`` or ``rte_ring_dequeue_bulk()``
+ *        is "multi-consumer HTS mode".
  *     If none of these flags is set, then default "multi-consumer"
  *     behavior is selected.
  * @return
@@ -103,7 +102,6 @@ ssize_t rte_ring_get_memsize_elem(unsigned int esize, unsigned int count);
  *    - EEXIST - a memzone with the same name already exists
  *    - ENOMEM - no appropriate memory area found in which to create memzone
  */
-__rte_experimental
 struct rte_ring *rte_ring_create_elem(const char *name, unsigned int esize,
                        unsigned int count, int socket_id, unsigned int flags);
 
@@ -541,6 +539,7 @@ rte_ring_sp_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table,
 }
 
 #ifdef ALLOW_EXPERIMENTAL_API
+#include <rte_ring_hts.h>
 #include <rte_ring_rts.h>
 #endif
 
@@ -571,9 +570,6 @@ static __rte_always_inline unsigned int
 rte_ring_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table,
                unsigned int esize, unsigned int n, unsigned int *free_space)
 {
-       return __rte_ring_do_enqueue_elem(r, obj_table, esize, n,
-                       RTE_RING_QUEUE_FIXED, r->prod.sync_type, free_space);
-
        switch (r->prod.sync_type) {
        case RTE_RING_SYNC_MT:
                return rte_ring_mp_enqueue_bulk_elem(r, obj_table, esize, n,
@@ -585,6 +581,9 @@ rte_ring_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table,
        case RTE_RING_SYNC_MT_RTS:
                return rte_ring_mp_rts_enqueue_bulk_elem(r, obj_table, esize, n,
                        free_space);
+       case RTE_RING_SYNC_MT_HTS:
+               return rte_ring_mp_hts_enqueue_bulk_elem(r, obj_table, esize, n,
+                       free_space);
 #endif
        }
 
@@ -766,6 +765,9 @@ rte_ring_dequeue_bulk_elem(struct rte_ring *r, void *obj_table,
        case RTE_RING_SYNC_MT_RTS:
                return rte_ring_mc_rts_dequeue_bulk_elem(r, obj_table, esize,
                        n, available);
+       case RTE_RING_SYNC_MT_HTS:
+               return rte_ring_mc_hts_dequeue_bulk_elem(r, obj_table, esize,
+                       n, available);
 #endif
        }
 
@@ -876,7 +878,7 @@ rte_ring_dequeue_elem(struct rte_ring *r, void *obj_p, unsigned int esize)
  * @return
  *   - n: Actual number of objects enqueued.
  */
-static __rte_always_inline unsigned
+static __rte_always_inline unsigned int
 rte_ring_mp_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
                unsigned int esize, unsigned int n, unsigned int *free_space)
 {
@@ -905,7 +907,7 @@ rte_ring_mp_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
  * @return
  *   - n: Actual number of objects enqueued.
  */
-static __rte_always_inline unsigned
+static __rte_always_inline unsigned int
 rte_ring_sp_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
                unsigned int esize, unsigned int n, unsigned int *free_space)
 {
@@ -936,7 +938,7 @@ rte_ring_sp_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
  * @return
  *   - n: Actual number of objects enqueued.
  */
-static __rte_always_inline unsigned
+static __rte_always_inline unsigned int
 rte_ring_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
                unsigned int esize, unsigned int n, unsigned int *free_space)
 {
@@ -951,6 +953,9 @@ rte_ring_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
        case RTE_RING_SYNC_MT_RTS:
                return rte_ring_mp_rts_enqueue_burst_elem(r, obj_table, esize,
                        n, free_space);
+       case RTE_RING_SYNC_MT_HTS:
+               return rte_ring_mp_hts_enqueue_burst_elem(r, obj_table, esize,
+                       n, free_space);
 #endif
        }
 
@@ -985,7 +990,7 @@ rte_ring_enqueue_burst_elem(struct rte_ring *r, const void *obj_table,
  * @return
  *   - n: Actual number of objects dequeued, 0 if ring is empty
  */
-static __rte_always_inline unsigned
+static __rte_always_inline unsigned int
 rte_ring_mc_dequeue_burst_elem(struct rte_ring *r, void *obj_table,
                unsigned int esize, unsigned int n, unsigned int *available)
 {
@@ -1014,7 +1019,7 @@ rte_ring_mc_dequeue_burst_elem(struct rte_ring *r, void *obj_table,
  * @return
  *   - n: Actual number of objects dequeued, 0 if ring is empty
  */
-static __rte_always_inline unsigned
+static __rte_always_inline unsigned int
 rte_ring_sc_dequeue_burst_elem(struct rte_ring *r, void *obj_table,
                unsigned int esize, unsigned int n, unsigned int *available)
 {
@@ -1060,6 +1065,9 @@ rte_ring_dequeue_burst_elem(struct rte_ring *r, void *obj_table,
        case RTE_RING_SYNC_MT_RTS:
                return rte_ring_mc_rts_dequeue_burst_elem(r, obj_table, esize,
                        n, available);
+       case RTE_RING_SYNC_MT_HTS:
+               return rte_ring_mc_hts_dequeue_burst_elem(r, obj_table, esize,
+                       n, available);
 #endif
        }
 
@@ -1070,6 +1078,10 @@ rte_ring_dequeue_burst_elem(struct rte_ring *r, void *obj_table,
        return 0;
 }
 
+#ifdef ALLOW_EXPERIMENTAL_API
+#include <rte_ring_peek.h>
+#endif
+
 #include <rte_ring.h>
 
 #ifdef __cplusplus