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