xref: /dpdk/drivers/common/cnxk/roc_dpi.h (revision b6e39569)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4 
5 #ifndef _ROC_DPI_H_
6 #define _ROC_DPI_H_
7 
8 struct roc_dpi_args {
9 	uint8_t num_ssegs;
10 	uint8_t num_dsegs;
11 	uint8_t comp_type;
12 	uint8_t direction;
13 	uint8_t sdevice;
14 	uint8_t ddevice;
15 	uint8_t swap;
16 	uint8_t use_lock : 1;
17 	uint8_t tt : 7;
18 	uint16_t func;
19 	uint16_t grp;
20 	uint32_t tag;
21 	uint64_t comp_ptr;
22 };
23 
24 struct roc_dpi {
25 	/* Input parameters */
26 	struct plt_pci_device *pci_dev;
27 	/* End of Input parameters */
28 	const struct plt_memzone *mz;
29 	uint8_t *rbase;
30 	uint16_t vfid;
31 	uint16_t pool_size_m1;
32 	uint16_t chunk_head;
33 	uint64_t *chunk_base;
34 	uint64_t *chunk_next;
35 	uint64_t aura_handle;
36 	plt_spinlock_t chunk_lock;
37 } __plt_cache_aligned;
38 
39 int __roc_api roc_dpi_dev_init(struct roc_dpi *roc_dpi);
40 int __roc_api roc_dpi_dev_fini(struct roc_dpi *roc_dpi);
41 
42 int __roc_api roc_dpi_configure(struct roc_dpi *dpi);
43 int __roc_api roc_dpi_enable(struct roc_dpi *dpi);
44 int __roc_api roc_dpi_disable(struct roc_dpi *dpi);
45 
46 #endif
47