On Wed, Oct 6, 2021 at 12:21 PM <pbhagavat...@marvell.com> wrote: > > From: Pavan Nikhilesh <pbhagavat...@marvell.com> > > Move fastpath inline function pointers from rte_eventdev into a > separate structure accessed via a flat array. > The intension is to make rte_eventdev and related structures private
intention > to avoid future API/ABI breakages.` > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > Acked-by: Ray Kinsella <m...@ashroe.eu> > --- > lib/eventdev/eventdev_pmd.h | 38 +++++++++++ > lib/eventdev/eventdev_pmd_pci.h | 4 +- > lib/eventdev/eventdev_private.c | 112 +++++++++++++++++++++++++++++++ > lib/eventdev/meson.build | 1 + > lib/eventdev/rte_eventdev.c | 22 +++++- > lib/eventdev/rte_eventdev_core.h | 28 ++++++++ > lib/eventdev/version.map | 6 ++ > 7 files changed, 209 insertions(+), 2 deletions(-) > create mode 100644 lib/eventdev/eventdev_private.c > sources = files( > + 'eventdev_private.c', > 'rte_eventdev.c', > 'rte_event_ring.c', > 'eventdev_trace_points.c', Since you are reworking, please sort this in alphabetical order. > > +struct rte_event_fp_ops { > + event_enqueue_t enqueue; > + /**< PMD enqueue function. */ > + event_enqueue_burst_t enqueue_burst; > + /**< PMD enqueue burst function. */ > + event_enqueue_burst_t enqueue_new_burst; > + /**< PMD enqueue burst new function. */ > + event_enqueue_burst_t enqueue_forward_burst; > + /**< PMD enqueue burst fwd function. */ > + event_dequeue_t dequeue; > + /**< PMD dequeue function. */ > + event_dequeue_burst_t dequeue_burst; > + /**< PMD dequeue burst function. */ > + event_tx_adapter_enqueue_t txa_enqueue; > + /**< PMD Tx adapter enqueue function. */ > + event_tx_adapter_enqueue_t txa_enqueue_same_dest; > + /**< PMD Tx adapter enqueue same destination function. */ > + event_crypto_adapter_enqueue_t ca_enqueue; > + /**< PMD Crypto adapter enqueue function. */ > + uintptr_t reserved[2]; > + > + void **data; Since access to data is a must for all ops, Please move that to first. Also, you can merge reserved and reserved2 in that case. > + /**< points to array of internal port data pointers */ > + uintptr_t reserved2[4]; > +} __rte_cache_aligned; > + > +extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS]; > + > #define RTE_EVENTDEV_NAME_MAX_LEN (64) > /**< @internal Max length of name of event PMD */ > > diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map > index 5f1fe412a4..a3a732089b 100644 > --- a/lib/eventdev/version.map > +++ b/lib/eventdev/version.map > @@ -85,6 +85,9 @@ DPDK_22 { > rte_event_timer_cancel_burst; > rte_eventdevs; > > + #added in 21.11 > + rte_event_fp_ops; > + > local: *; > }; > > @@ -141,6 +144,9 @@ EXPERIMENTAL { > INTERNAL { > global: > > + event_dev_fp_ops_reset; > + event_dev_fp_ops_set; > + event_dev_probing_finish; > rte_event_pmd_selftest_seqn_dynfield_offset; > rte_event_pmd_allocate; > rte_event_pmd_get_named_dev; > -- > 2.17.1 >