examples/pipeline: fix build
[dpdk.git] / drivers / common / cnxk / roc_nix_inl_priv.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4 #ifndef _ROC_NIX_INL_PRIV_H_
5 #define _ROC_NIX_INL_PRIV_H_
6 #include <pthread.h>
7 #include <sys/types.h>
8
9 struct nix_inl_dev;
10 struct nix_inl_qint {
11         struct nix_inl_dev *inl_dev;
12         uint16_t qint;
13 };
14
15 struct nix_inl_dev {
16         /* Base device object */
17         struct dev dev;
18
19         /* PCI device */
20         struct plt_pci_device *pci_dev;
21
22         /* LF specific BAR2 regions */
23         uintptr_t nix_base;
24         uintptr_t ssow_base;
25         uintptr_t sso_base;
26         uintptr_t cpt_base;
27
28         /* MSIX vector offsets */
29         uint16_t nix_msixoff;
30         uint16_t ssow_msixoff;
31         uint16_t sso_msixoff;
32         uint16_t cpt_msixoff;
33
34         /* SSO data */
35         uint32_t xaq_buf_size;
36         uint32_t xae_waes;
37         uint32_t iue;
38         uint32_t nb_xae;
39         struct roc_sso_xaq_data xaq;
40         roc_nix_inl_sso_work_cb_t work_cb;
41         void *cb_args;
42         uint64_t *pkt_pools;
43         uint16_t pkt_pools_cnt;
44
45         /* NIX data */
46         uint8_t lf_tx_stats;
47         uint8_t lf_rx_stats;
48         uint16_t vwqe_interval;
49         uint16_t cints;
50         uint16_t qints;
51         uint16_t configured_qints;
52         struct roc_nix_rq *rqs;
53         struct nix_inl_qint *qints_mem;
54         uint16_t nb_rqs;
55         bool is_nix1;
56         uint8_t spb_drop_pc;
57         uint8_t lpb_drop_pc;
58
59         /* NIX/CPT data */
60         void *inb_sa_base;
61         uint16_t inb_sa_sz;
62
63         /* CPT data */
64         struct roc_cpt_lf cpt_lf;
65
66         /* OUTB soft expiry poll thread */
67         pthread_t soft_exp_poll_thread;
68         uint32_t soft_exp_poll_freq;
69         uint64_t *sa_soft_exp_ring;
70         bool set_soft_exp_poll;
71
72         /* Soft expiry ring bitmap */
73         struct plt_bitmap *soft_exp_ring_bmap;
74
75         /* bitmap memory */
76         void *soft_exp_ring_bmap_mem;
77
78         /* Device arguments */
79         uint8_t selftest;
80         uint16_t channel;
81         uint16_t chan_mask;
82         bool is_multi_channel;
83         uint32_t ipsec_in_min_spi;
84         uint32_t ipsec_in_max_spi;
85         uint32_t inb_spi_mask;
86         bool attach_cptlf;
87         bool wqe_skip;
88         bool ts_ena;
89 };
90
91 int nix_inl_sso_register_irqs(struct nix_inl_dev *inl_dev);
92 void nix_inl_sso_unregister_irqs(struct nix_inl_dev *inl_dev);
93
94 int nix_inl_nix_register_irqs(struct nix_inl_dev *inl_dev);
95 void nix_inl_nix_unregister_irqs(struct nix_inl_dev *inl_dev);
96
97 uint16_t nix_inl_dev_pffunc_get(void);
98
99 #endif /* _ROC_NIX_INL_PRIV_H_ */