net/iavf: add basic NEON Rx
[dpdk.git] / drivers / dma / cnxk / cnxk_dmadev.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell International Ltd.
3  */
4 #ifndef CNXK_DMADEV_H
5 #define CNXK_DMADEV_H
6
7 #define DPI_MAX_POINTER         15
8 #define DPI_QUEUE_STOP          0x0
9 #define DPI_QUEUE_START         0x1
10 #define STRM_INC(s)             ((s).tail = ((s).tail + 1) % (s).max_cnt)
11 #define DPI_MAX_DESC            DPI_MAX_POINTER
12
13 /* Set Completion data to 0xFF when request submitted,
14  * upon successful request completion engine reset to completion status
15  */
16 #define DPI_REQ_CDATA           0xFF
17
18 struct cnxk_dpi_compl_s {
19         uint64_t cdata;
20         void *cb_data;
21 };
22
23 struct cnxk_dpi_cdesc_data_s {
24         struct cnxk_dpi_compl_s *compl_ptr[DPI_MAX_DESC];
25         uint16_t max_cnt;
26         uint16_t head;
27         uint16_t tail;
28 };
29
30 struct cnxk_dpi_conf {
31         union dpi_instr_hdr_s hdr;
32         struct cnxk_dpi_cdesc_data_s c_desc;
33 };
34
35 struct cnxk_dpi_vf_s {
36         struct roc_dpi rdpi;
37         struct cnxk_dpi_conf conf;
38         struct rte_dma_stats stats;
39         uint64_t cmd[DPI_MAX_CMD_SIZE];
40         uint32_t num_words;
41         uint16_t desc_idx;
42 };
43
44 #endif