xref: /dpdk/drivers/net/ntnic/include/ntnic_dbs.h (revision f0fe222ea9cfe3c8a6972318d02a81a637aefd47)
1b0cd36e9SDanylo Vodopianov /*
2b0cd36e9SDanylo Vodopianov  * SPDX-License-Identifier: BSD-3-Clause
3b0cd36e9SDanylo Vodopianov  * Copyright(c) 2023 Napatech A/S
4b0cd36e9SDanylo Vodopianov  */
5b0cd36e9SDanylo Vodopianov 
6b0cd36e9SDanylo Vodopianov #ifndef _NTNIC_DBS_H_
7b0cd36e9SDanylo Vodopianov #define _NTNIC_DBS_H_
8b0cd36e9SDanylo Vodopianov 
9b0cd36e9SDanylo Vodopianov #include "nthw_fpga_model.h"
10b0cd36e9SDanylo Vodopianov 
11576e7721SDanylo Vodopianov #define NT_DBS_RX_QUEUES_MAX (128)
12576e7721SDanylo Vodopianov #define NT_DBS_TX_QUEUES_MAX (128)
13576e7721SDanylo Vodopianov 
14b0cd36e9SDanylo Vodopianov /*
15b0cd36e9SDanylo Vodopianov  * Struct for implementation of memory bank shadows
16b0cd36e9SDanylo Vodopianov  */
17b0cd36e9SDanylo Vodopianov 
1801e34ed9SDanylo Vodopianov /* DBS_RX_AM_DATA */
1901e34ed9SDanylo Vodopianov struct nthw_dbs_rx_am_data_s {
2001e34ed9SDanylo Vodopianov 	uint64_t guest_physical_address;
2101e34ed9SDanylo Vodopianov 	uint32_t enable;
2201e34ed9SDanylo Vodopianov 	uint32_t host_id;
2301e34ed9SDanylo Vodopianov 	uint32_t packed;
2401e34ed9SDanylo Vodopianov 	uint32_t int_enable;
2501e34ed9SDanylo Vodopianov };
2601e34ed9SDanylo Vodopianov 
2701e34ed9SDanylo Vodopianov /* DBS_TX_AM_DATA */
2801e34ed9SDanylo Vodopianov struct nthw_dbs_tx_am_data_s {
2901e34ed9SDanylo Vodopianov 	uint64_t guest_physical_address;
3001e34ed9SDanylo Vodopianov 	uint32_t enable;
3101e34ed9SDanylo Vodopianov 	uint32_t host_id;
3201e34ed9SDanylo Vodopianov 	uint32_t packed;
3301e34ed9SDanylo Vodopianov 	uint32_t int_enable;
3401e34ed9SDanylo Vodopianov };
3501e34ed9SDanylo Vodopianov 
3667aee0a6SDanylo Vodopianov /* DBS_RX_UW_DATA */
3767aee0a6SDanylo Vodopianov struct nthw_dbs_rx_uw_data_s {
3867aee0a6SDanylo Vodopianov 	uint64_t guest_physical_address;
3967aee0a6SDanylo Vodopianov 	uint32_t host_id;
4067aee0a6SDanylo Vodopianov 	uint32_t queue_size;
4167aee0a6SDanylo Vodopianov 	uint32_t packed;
4267aee0a6SDanylo Vodopianov 	uint32_t int_enable;
4367aee0a6SDanylo Vodopianov 	uint32_t vec;
4467aee0a6SDanylo Vodopianov 	uint32_t istk;
4567aee0a6SDanylo Vodopianov };
4667aee0a6SDanylo Vodopianov 
4767aee0a6SDanylo Vodopianov /* DBS_TX_UW_DATA */
4867aee0a6SDanylo Vodopianov struct nthw_dbs_tx_uw_data_s {
4967aee0a6SDanylo Vodopianov 	uint64_t guest_physical_address;
5067aee0a6SDanylo Vodopianov 	uint32_t host_id;
5167aee0a6SDanylo Vodopianov 	uint32_t queue_size;
5267aee0a6SDanylo Vodopianov 	uint32_t packed;
5367aee0a6SDanylo Vodopianov 	uint32_t int_enable;
5467aee0a6SDanylo Vodopianov 	uint32_t vec;
5567aee0a6SDanylo Vodopianov 	uint32_t istk;
5667aee0a6SDanylo Vodopianov 	uint32_t in_order;
5767aee0a6SDanylo Vodopianov };
5867aee0a6SDanylo Vodopianov 
59f7b88165SDanylo Vodopianov /* DBS_RX_DR_DATA */
60f7b88165SDanylo Vodopianov struct nthw_dbs_rx_dr_data_s {
61f7b88165SDanylo Vodopianov 	uint64_t guest_physical_address;
62f7b88165SDanylo Vodopianov 	uint32_t host_id;
63f7b88165SDanylo Vodopianov 	uint32_t queue_size;
64f7b88165SDanylo Vodopianov 	uint32_t header;
65f7b88165SDanylo Vodopianov 	uint32_t packed;
66f7b88165SDanylo Vodopianov };
67f7b88165SDanylo Vodopianov 
68f7b88165SDanylo Vodopianov /* DBS_TX_DR_DATA */
69f7b88165SDanylo Vodopianov struct nthw_dbs_tx_dr_data_s {
70f7b88165SDanylo Vodopianov 	uint64_t guest_physical_address;
71f7b88165SDanylo Vodopianov 	uint32_t host_id;
72f7b88165SDanylo Vodopianov 	uint32_t queue_size;
73f7b88165SDanylo Vodopianov 	uint32_t header;
74f7b88165SDanylo Vodopianov 	uint32_t port;
75f7b88165SDanylo Vodopianov 	uint32_t packed;
76f7b88165SDanylo Vodopianov };
77f7b88165SDanylo Vodopianov 
7801e34ed9SDanylo Vodopianov /* DBS_TX_QP_DATA */
7901e34ed9SDanylo Vodopianov struct nthw_dbs_tx_qp_data_s {
8001e34ed9SDanylo Vodopianov 	uint32_t virtual_port;
8101e34ed9SDanylo Vodopianov };
8201e34ed9SDanylo Vodopianov 
83576e7721SDanylo Vodopianov struct nthw_dbs_s {
84576e7721SDanylo Vodopianov 	nthw_fpga_t *mp_fpga;
85576e7721SDanylo Vodopianov 	nthw_module_t *mp_mod_dbs;
86576e7721SDanylo Vodopianov 	int mn_instance;
87576e7721SDanylo Vodopianov 
88576e7721SDanylo Vodopianov 	int mn_param_dbs_present;
89576e7721SDanylo Vodopianov 
90576e7721SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_control;
91576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_control_last_queue;
92576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_control_avail_monitor_enable;
93576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_control_avail_monitor_scan_speed;
94576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_control_used_write_enable;
95576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_control_used_writer_update_speed;
96576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_control_rx_queues_enable;
97576e7721SDanylo Vodopianov 
98576e7721SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_control;
99576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_control_last_queue;
100576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_control_avail_monitor_enable;
101576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_control_avail_monitor_scan_speed;
102576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_control_used_write_enable;
103576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_control_used_writer_update_speed;
104576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_control_tx_queues_enable;
105576e7721SDanylo Vodopianov 
106576e7721SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_init;
107576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_init_init;
108576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_init_queue;
109576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_init_busy;
110576e7721SDanylo Vodopianov 
111576e7721SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_init_val;
112576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_init_val_idx;
113576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_init_val_ptr;
114576e7721SDanylo Vodopianov 
115e13da07fSDanylo Vodopianov 	nthw_register_t *mp_reg_rx_ptr;
116e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_rx_ptr_ptr;
117e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_rx_ptr_queue;
118e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_rx_ptr_valid;
119e13da07fSDanylo Vodopianov 
120576e7721SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_init;
121576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_init_init;
122576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_init_queue;
123576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_init_busy;
124576e7721SDanylo Vodopianov 
125576e7721SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_init_val;
126576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_init_val_idx;
127576e7721SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_init_val_ptr;
128576e7721SDanylo Vodopianov 
129e13da07fSDanylo Vodopianov 	nthw_register_t *mp_reg_tx_ptr;
130e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_tx_ptr_ptr;
131e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_tx_ptr_queue;
132e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_tx_ptr_valid;
133e13da07fSDanylo Vodopianov 
134e13da07fSDanylo Vodopianov 	nthw_register_t *mp_reg_rx_idle;
135e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_rx_idle_idle;
136e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_rx_idle_queue;
137e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_rx_idle_busy;
138e13da07fSDanylo Vodopianov 
139e13da07fSDanylo Vodopianov 	nthw_register_t *mp_reg_tx_idle;
140e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_tx_idle_idle;
141e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_tx_idle_queue;
142e13da07fSDanylo Vodopianov 	nthw_field_t *mp_fld_tx_idle_busy;
14301e34ed9SDanylo Vodopianov 
14401e34ed9SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_avail_monitor_control;
14501e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_control_adr;
14601e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_control_cnt;
14701e34ed9SDanylo Vodopianov 
14801e34ed9SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_avail_monitor_data;
14901e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_data_guest_physical_address;
15001e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_data_enable;
15101e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_data_host_id;
15201e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_data_packed;
15301e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_avail_monitor_data_int;
15401e34ed9SDanylo Vodopianov 
15501e34ed9SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_avail_monitor_control;
15601e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_control_adr;
15701e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_control_cnt;
15801e34ed9SDanylo Vodopianov 
15901e34ed9SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_avail_monitor_data;
16001e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_data_guest_physical_address;
16101e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_data_enable;
16201e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_data_host_id;
16301e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_data_packed;
16401e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_avail_monitor_data_int;
16501e34ed9SDanylo Vodopianov 
16667aee0a6SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_used_writer_control;
16767aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_control_adr;
16867aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_control_cnt;
16967aee0a6SDanylo Vodopianov 
17067aee0a6SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_used_writer_data;
17167aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_guest_physical_address;
17267aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_host_id;
17367aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_queue_size;
17467aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_packed;
17567aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_int;
17667aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_vec;
17767aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_used_writer_data_istk;
17867aee0a6SDanylo Vodopianov 
17967aee0a6SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_used_writer_control;
18067aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_control_adr;
18167aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_control_cnt;
18267aee0a6SDanylo Vodopianov 
18367aee0a6SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_used_writer_data;
18467aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_guest_physical_address;
18567aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_host_id;
18667aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_queue_size;
18767aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_packed;
18867aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_int;
18967aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_vec;
19067aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_istk;
19167aee0a6SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_used_writer_data_in_order;
19267aee0a6SDanylo Vodopianov 
193f7b88165SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_descriptor_reader_control;
194f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_control_adr;
195f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_control_cnt;
196f7b88165SDanylo Vodopianov 
197f7b88165SDanylo Vodopianov 	nthw_register_t *mp_reg_rx_descriptor_reader_data;
198f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_data_guest_physical_address;
199f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_data_host_id;
200f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_data_queue_size;
201f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_data_header;
202f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_rx_descriptor_reader_data_packed;
203f7b88165SDanylo Vodopianov 
204f7b88165SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_descriptor_reader_control;
205f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_control_adr;
206f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_control_cnt;
207f7b88165SDanylo Vodopianov 
208f7b88165SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_descriptor_reader_data;
209f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_data_guest_physical_address;
210f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_data_host_id;
211f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_data_queue_size;
212f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_data_port;
213f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_data_header;
214f7b88165SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_descriptor_reader_data_packed;
215f7b88165SDanylo Vodopianov 
21601e34ed9SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_queue_property_control;
21701e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_queue_property_control_adr;
21801e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_queue_property_control_cnt;
21901e34ed9SDanylo Vodopianov 
22001e34ed9SDanylo Vodopianov 	nthw_register_t *mp_reg_tx_queue_property_data;
22101e34ed9SDanylo Vodopianov 	nthw_field_t *mp_fld_tx_queue_property_data_v_port;
22201e34ed9SDanylo Vodopianov 
22301e34ed9SDanylo Vodopianov 	struct nthw_dbs_rx_am_data_s m_rx_am_shadow[NT_DBS_RX_QUEUES_MAX];
22467aee0a6SDanylo Vodopianov 	struct nthw_dbs_rx_uw_data_s m_rx_uw_shadow[NT_DBS_RX_QUEUES_MAX];
225f7b88165SDanylo Vodopianov 	struct nthw_dbs_rx_dr_data_s m_rx_dr_shadow[NT_DBS_RX_QUEUES_MAX];
22601e34ed9SDanylo Vodopianov 
22701e34ed9SDanylo Vodopianov 	struct nthw_dbs_tx_am_data_s m_tx_am_shadow[NT_DBS_TX_QUEUES_MAX];
22867aee0a6SDanylo Vodopianov 	struct nthw_dbs_tx_uw_data_s m_tx_uw_shadow[NT_DBS_TX_QUEUES_MAX];
229f7b88165SDanylo Vodopianov 	struct nthw_dbs_tx_dr_data_s m_tx_dr_shadow[NT_DBS_TX_QUEUES_MAX];
23001e34ed9SDanylo Vodopianov 	struct nthw_dbs_tx_qp_data_s m_tx_qp_shadow[NT_DBS_TX_QUEUES_MAX];
231576e7721SDanylo Vodopianov };
232b0cd36e9SDanylo Vodopianov 
233b0cd36e9SDanylo Vodopianov typedef struct nthw_dbs_s nthw_dbs_t;
234b0cd36e9SDanylo Vodopianov 
235576e7721SDanylo Vodopianov nthw_dbs_t *nthw_dbs_new(void);
236576e7721SDanylo Vodopianov int dbs_init(nthw_dbs_t *p, nthw_fpga_t *p_fpga, int n_instance);
237576e7721SDanylo Vodopianov void dbs_reset(nthw_dbs_t *p);
238576e7721SDanylo Vodopianov 
239576e7721SDanylo Vodopianov int set_rx_control(nthw_dbs_t *p,
240576e7721SDanylo Vodopianov 	uint32_t last_queue,
241576e7721SDanylo Vodopianov 	uint32_t avail_monitor_enable,
242576e7721SDanylo Vodopianov 	uint32_t avail_monitor_speed,
243576e7721SDanylo Vodopianov 	uint32_t used_write_enable,
244576e7721SDanylo Vodopianov 	uint32_t used_write_speed,
245576e7721SDanylo Vodopianov 	uint32_t rx_queue_enable);
246576e7721SDanylo Vodopianov int set_tx_control(nthw_dbs_t *p,
247576e7721SDanylo Vodopianov 	uint32_t last_queue,
248576e7721SDanylo Vodopianov 	uint32_t avail_monitor_enable,
249576e7721SDanylo Vodopianov 	uint32_t avail_monitor_speed,
250576e7721SDanylo Vodopianov 	uint32_t used_write_enable,
251576e7721SDanylo Vodopianov 	uint32_t used_write_speed,
252576e7721SDanylo Vodopianov 	uint32_t tx_queue_enable);
253576e7721SDanylo Vodopianov int set_rx_init(nthw_dbs_t *p, uint32_t start_idx, uint32_t start_ptr, uint32_t init,
254576e7721SDanylo Vodopianov 	uint32_t queue);
255576e7721SDanylo Vodopianov int get_rx_init(nthw_dbs_t *p, uint32_t *init, uint32_t *queue, uint32_t *busy);
256576e7721SDanylo Vodopianov int set_tx_init(nthw_dbs_t *p, uint32_t start_idx, uint32_t start_ptr, uint32_t init,
257576e7721SDanylo Vodopianov 	uint32_t queue);
258576e7721SDanylo Vodopianov int get_tx_init(nthw_dbs_t *p, uint32_t *init, uint32_t *queue, uint32_t *busy);
259*f0fe222eSDanylo Vodopianov int set_rx_idle(nthw_dbs_t *p, uint32_t idle, uint32_t queue);
260*f0fe222eSDanylo Vodopianov int get_rx_idle(nthw_dbs_t *p, uint32_t *idle, uint32_t *queue, uint32_t *busy);
261*f0fe222eSDanylo Vodopianov int set_tx_idle(nthw_dbs_t *p, uint32_t idle, uint32_t queue);
262*f0fe222eSDanylo Vodopianov int get_tx_idle(nthw_dbs_t *p, uint32_t *idle, uint32_t *queue, uint32_t *busy);
26301e34ed9SDanylo Vodopianov int set_rx_am_data(nthw_dbs_t *p,
26401e34ed9SDanylo Vodopianov 	uint32_t index,
26501e34ed9SDanylo Vodopianov 	uint64_t guest_physical_address,
26601e34ed9SDanylo Vodopianov 	uint32_t enable,
26701e34ed9SDanylo Vodopianov 	uint32_t host_id,
26801e34ed9SDanylo Vodopianov 	uint32_t packed,
26901e34ed9SDanylo Vodopianov 	uint32_t int_enable);
27001e34ed9SDanylo Vodopianov int set_tx_am_data(nthw_dbs_t *p,
27101e34ed9SDanylo Vodopianov 	uint32_t index,
27201e34ed9SDanylo Vodopianov 	uint64_t guest_physical_address,
27301e34ed9SDanylo Vodopianov 	uint32_t enable,
27401e34ed9SDanylo Vodopianov 	uint32_t host_id,
27501e34ed9SDanylo Vodopianov 	uint32_t packed,
27601e34ed9SDanylo Vodopianov 	uint32_t int_enable);
27767aee0a6SDanylo Vodopianov int set_rx_uw_data(nthw_dbs_t *p,
27867aee0a6SDanylo Vodopianov 	uint32_t index,
27967aee0a6SDanylo Vodopianov 	uint64_t guest_physical_address,
28067aee0a6SDanylo Vodopianov 	uint32_t host_id,
28167aee0a6SDanylo Vodopianov 	uint32_t queue_size,
28267aee0a6SDanylo Vodopianov 	uint32_t packed,
28367aee0a6SDanylo Vodopianov 	uint32_t int_enable,
28467aee0a6SDanylo Vodopianov 	uint32_t vec,
28567aee0a6SDanylo Vodopianov 	uint32_t istk);
28667aee0a6SDanylo Vodopianov int set_tx_uw_data(nthw_dbs_t *p,
28767aee0a6SDanylo Vodopianov 	uint32_t index,
28867aee0a6SDanylo Vodopianov 	uint64_t guest_physical_address,
28967aee0a6SDanylo Vodopianov 	uint32_t host_id,
29067aee0a6SDanylo Vodopianov 	uint32_t queue_size,
29167aee0a6SDanylo Vodopianov 	uint32_t packed,
29267aee0a6SDanylo Vodopianov 	uint32_t int_enable,
29367aee0a6SDanylo Vodopianov 	uint32_t vec,
29467aee0a6SDanylo Vodopianov 	uint32_t istk,
29567aee0a6SDanylo Vodopianov 	uint32_t in_order);
296f7b88165SDanylo Vodopianov int set_rx_dr_data(nthw_dbs_t *p,
297f7b88165SDanylo Vodopianov 	uint32_t index,
298f7b88165SDanylo Vodopianov 	uint64_t guest_physical_address,
299f7b88165SDanylo Vodopianov 	uint32_t host_id,
300f7b88165SDanylo Vodopianov 	uint32_t queue_size,
301f7b88165SDanylo Vodopianov 	uint32_t header,
302f7b88165SDanylo Vodopianov 	uint32_t packed);
303f7b88165SDanylo Vodopianov int set_tx_dr_data(nthw_dbs_t *p,
304f7b88165SDanylo Vodopianov 	uint32_t index,
305f7b88165SDanylo Vodopianov 	uint64_t guest_physical_address,
306f7b88165SDanylo Vodopianov 	uint32_t host_id,
307f7b88165SDanylo Vodopianov 	uint32_t queue_size,
308f7b88165SDanylo Vodopianov 	uint32_t port,
309f7b88165SDanylo Vodopianov 	uint32_t header,
310f7b88165SDanylo Vodopianov 	uint32_t packed);
31101e34ed9SDanylo Vodopianov int nthw_dbs_set_tx_qp_data(nthw_dbs_t *p, uint32_t index, uint32_t virtual_port);
312576e7721SDanylo Vodopianov 
313b0cd36e9SDanylo Vodopianov #endif	/* _NTNIC_DBS_H_ */
314