git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove extra parentheses in return statement
[dpdk.git]
/
lib
/
librte_ring
/
rte_ring.h
diff --git
a/lib/librte_ring/rte_ring.h
b/lib/librte_ring/rte_ring.h
index
af68888
..
943c97c
100644
(file)
--- a/
lib/librte_ring/rte_ring.h
+++ b/
lib/librte_ring/rte_ring.h
@@
-134,6
+134,8
@@
struct rte_ring_debug_stats {
* if RTE_RING_PAUSE_REP not defined. */
#endif
* if RTE_RING_PAUSE_REP not defined. */
#endif
+struct rte_memzone; /* forward declaration, so as not to require memzone.h */
+
/**
* An RTE ring structure.
*
/**
* An RTE ring structure.
*
@@
-147,6
+149,8
@@
struct rte_ring_debug_stats {
struct rte_ring {
char name[RTE_RING_NAMESIZE]; /**< Name of the ring. */
int flags; /**< Flags supplied at creation. */
struct rte_ring {
char name[RTE_RING_NAMESIZE]; /**< Name of the ring. */
int flags; /**< Flags supplied at creation. */
+ const struct rte_memzone *memzone;
+ /**< Memzone, if any, containing the rte_ring */
/** Ring producer status. */
struct prod {
/** Ring producer status. */
struct prod {
@@
-300,6
+304,13
@@
int rte_ring_init(struct rte_ring *r, const char *name, unsigned count,
*/
struct rte_ring *rte_ring_create(const char *name, unsigned count,
int socket_id, unsigned flags);
*/
struct rte_ring *rte_ring_create(const char *name, unsigned count,
int socket_id, unsigned flags);
+/**
+ * De-allocate all memory used by the ring.
+ *
+ * @param r
+ * Ring to free
+ */
+void rte_ring_free(struct rte_ring *r);
/**
* Change the high water mark.
/**
* Change the high water mark.
@@
-457,7
+468,7
@@
__rte_ring_mp_do_enqueue(struct rte_ring *r, void * const *obj_table,
/* write entries in ring */
ENQUEUE_PTRS();
/* write entries in ring */
ENQUEUE_PTRS();
- rte_
compiler_barrier
();
+ rte_
smp_wmb
();
/* if we exceed the watermark */
if (unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {
/* if we exceed the watermark */
if (unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {
@@
-552,7
+563,7
@@
__rte_ring_sp_do_enqueue(struct rte_ring *r, void * const *obj_table,
/* write entries in ring */
ENQUEUE_PTRS();
/* write entries in ring */
ENQUEUE_PTRS();
- rte_
compiler_barrier
();
+ rte_
smp_wmb
();
/* if we exceed the watermark */
if (unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {
/* if we exceed the watermark */
if (unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {
@@
-643,7
+654,7
@@
__rte_ring_mc_do_dequeue(struct rte_ring *r, void **obj_table,
/* copy in table */
DEQUEUE_PTRS();
/* copy in table */
DEQUEUE_PTRS();
- rte_
compiler_barrier
();
+ rte_
smp_rmb
();
/*
* If there are other dequeues in progress that preceded us,
/*
* If there are other dequeues in progress that preceded us,
@@
-727,7
+738,7
@@
__rte_ring_sc_do_dequeue(struct rte_ring *r, void **obj_table,
/* copy in table */
DEQUEUE_PTRS();
/* copy in table */
DEQUEUE_PTRS();
- rte_
compiler_barrier
();
+ rte_
smp_rmb
();
__RING_STAT_ADD(r, deq_success, n);
r->cons.tail = cons_next;
__RING_STAT_ADD(r, deq_success, n);
r->cons.tail = cons_next;
@@
-1026,7
+1037,7
@@
rte_ring_full(const struct rte_ring *r)
{
uint32_t prod_tail = r->prod.tail;
uint32_t cons_tail = r->cons.tail;
{
uint32_t prod_tail = r->prod.tail;
uint32_t cons_tail = r->cons.tail;
- return ((
(cons_tail - prod_tail - 1) & r->prod.mask) == 0)
;
+ return ((
cons_tail - prod_tail - 1) & r->prod.mask) == 0
;
}
/**
}
/**
@@
-1059,7
+1070,7
@@
rte_ring_count(const struct rte_ring *r)
{
uint32_t prod_tail = r->prod.tail;
uint32_t cons_tail = r->cons.tail;
{
uint32_t prod_tail = r->prod.tail;
uint32_t cons_tail = r->cons.tail;
- return (
(prod_tail - cons_tail) & r->prod.mask)
;
+ return (
prod_tail - cons_tail) & r->prod.mask
;
}
/**
}
/**
@@
-1075,7
+1086,7
@@
rte_ring_free_count(const struct rte_ring *r)
{
uint32_t prod_tail = r->prod.tail;
uint32_t cons_tail = r->cons.tail;
{
uint32_t prod_tail = r->prod.tail;
uint32_t cons_tail = r->cons.tail;
- return (
(cons_tail - prod_tail - 1) & r->prod.mask)
;
+ return (
cons_tail - prod_tail - 1) & r->prod.mask
;
}
/**
}
/**