> diff --git a/lib/cryptodev/rte_cryptodev_core.h 
> b/lib/cryptodev/rte_cryptodev_core.h
> index 1633e55889..e9e9a44b3c 100644
> --- a/lib/cryptodev/rte_cryptodev_core.h
> +++ b/lib/cryptodev/rte_cryptodev_core.h
> @@ -25,6 +25,35 @@ typedef uint16_t (*enqueue_pkt_burst_t)(void *qp,
>               struct rte_crypto_op **ops,     uint16_t nb_ops);
>  /**< Enqueue packets for processing on queue pair of a device. */
> 
> +/**
> + * @internal
> + * Structure used to hold opaque pointers to internal ethdev Rx/Tx
> + * queues data.
> + * The main purpose to expose these pointers at all - allow compiler
> + * to fetch this data for fast-path cryptodev inline functions in advance.
> + */
> +struct rte_cryptodev_qpdata {
> +     /** points to array of internal queue pair data pointers. */
> +     void **data;
> +     /** points to array of enqueue callback data pointers */
> +     struct rte_cryptodev_cb_rcu *enq_cb;
> +     /** points to array of dequeue callback data pointers */
> +     struct rte_cryptodev_cb_rcu *deq_cb;
> +};
> +
> +struct rte_crypto_fp_ops {
> +     /** PMD enqueue burst function. */
> +     enqueue_pkt_burst_t enqueue_burst;
> +     /** PMD dequeue burst function. */
> +     dequeue_pkt_burst_t dequeue_burst;
> +     /** Internal queue pair data pointers. */
> +     struct rte_cryptodev_qpdata qp;
> +     /** Reserved for future ops. */
> +     uintptr_t reserved[4];

I think it has to be uintptr_t reserved[3];
2 function pointers + 3 data pointers +3 reserved pointers.
Otherwise it will occupy extra 64B line.

> +} __rte_cache_aligned;
> +
> +extern struct rte_crypto_fp_ops rte_crypto_fp_ops[RTE_CRYPTO_MAX_DEVS];
> +
>  /**
>   * @internal
>   * The data part, with no function pointers, associated with each device.
> diff --git a/lib/cryptodev/version.map b/lib/cryptodev/version.map
> index 43cf937e40..ed62ced221 100644
> --- a/lib/cryptodev/version.map
> +++ b/lib/cryptodev/version.map
> @@ -45,6 +45,9 @@ DPDK_22 {
>       rte_cryptodev_sym_session_init;
>       rte_cryptodevs;
> 
> +     #added in 21.11
> +     rte_crypto_fp_ops;
> +
>       local: *;
>  };
> 
> @@ -109,6 +112,8 @@ EXPERIMENTAL {
>  INTERNAL {
>       global:
> 
> +     cryptodev_fp_ops_reset;
> +     cryptodev_fp_ops_set;
>       rte_cryptodev_allocate_driver;
>       rte_cryptodev_pmd_allocate;
>       rte_cryptodev_pmd_callback_process;
> --
> 2.25.1

Reply via email to