ring: make struct and macros type agnostic
authorBruce Richardson <bruce.richardson@intel.com>
Wed, 29 Mar 2017 15:21:30 +0000 (16:21 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 29 Mar 2017 20:32:20 +0000 (22:32 +0200)
commita6619414e0a93176d36b471ba3e5c1d552b65dd7
tree617981c47e8c1d58062772014dc6995f15e82147
parent6a68df7f230fe6908da4c1a4af42f55f185a23e9
ring: make struct and macros type agnostic

Modify the enqueue and dequeue macros to support copying any type of
object by passing in the exact object type. Rather than using the "ring"
structure member of rte_ring, which is of type "array of void *", instead
have the macros take the start of the ring a a pointer value, thereby
leaving the rte_ring structure as purely a header value. This allows it
to be reused by other future ring types which can add on extra fields if
they want, or even to have the actual ring elements, of whatever type
stored separate from the ring header.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_ring/rte_ring.h