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