numam-dpdk/lib/cryptodev/rte_cryptodev_core.h
Akhil Goyal 92cb130919 cryptodev: move device-specific structures
The device specific structures - rte_cryptodev
and rte_cryptodev_data are moved to cryptodev_pmd.h
to hide it from the applications.

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
Tested-by: Rebecca Troy <rebecca.troy@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2021-10-20 15:33:16 +02:00

63 lines
1.8 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(C) 2021 Marvell.
*/
#ifndef _RTE_CRYPTODEV_CORE_H_
#define _RTE_CRYPTODEV_CORE_H_
/**
* @file
*
* RTE Crypto Device internal header.
*
* This header contains internal data types. But they are still part of the
* public API because they are used by inline functions in the published API.
*
* Applications should not use these directly.
*
*/
typedef uint16_t (*dequeue_pkt_burst_t)(void *qp,
struct rte_crypto_op **ops, uint16_t nb_ops);
/**< Dequeue processed packets from queue pair of a device. */
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[3];
} __rte_cache_aligned;
extern struct rte_crypto_fp_ops rte_crypto_fp_ops[RTE_CRYPTO_MAX_DEVS];
/**
* The pool of rte_cryptodev structures.
*/
extern struct rte_cryptodev *rte_cryptodevs;
#endif /* _RTE_CRYPTODEV_CORE_H_ */