1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 HUAWEI TECHNOLOGIES CO., LTD.
5 #ifndef _VIRTIO_CRYPTODEV_H_
6 #define _VIRTIO_CRYPTODEV_H_
8 #include "virtio_crypto.h"
9 #include "virtio_pci.h"
10 #include "virtio_ring.h"
12 /* Features desired/implemented by this driver. */
13 #define VIRTIO_CRYPTO_PMD_GUEST_FEATURES (1ULL << VIRTIO_F_VERSION_1)
15 #define CRYPTODEV_NAME_VIRTIO_PMD crypto_virtio
17 #define NUM_ENTRY_VIRTIO_CRYPTO_OP 7
19 struct virtio_crypto_op_cookie {
20 struct virtio_crypto_op_data_req data_req;
21 struct virtio_crypto_inhdr inhdr;
22 struct vring_desc desc[NUM_ENTRY_VIRTIO_CRYPTO_OP];
26 * Control queue function prototype
28 void virtio_crypto_ctrlq_start(struct rte_cryptodev *dev);
31 * Data queue function prototype
33 void virtio_crypto_dataq_start(struct rte_cryptodev *dev);
35 int virtio_crypto_queue_setup(struct rte_cryptodev *dev,
37 uint16_t vtpci_queue_idx,
40 struct virtqueue **pvq);
42 void virtio_crypto_queue_release(struct virtqueue *vq);
44 uint16_t virtio_crypto_pkt_tx_burst(void *tx_queue,
45 struct rte_crypto_op **tx_pkts,
48 uint16_t virtio_crypto_pkt_rx_burst(void *tx_queue,
49 struct rte_crypto_op **tx_pkts,
52 #endif /* _VIRTIO_CRYPTODEV_H_ */