#ifndef _QED_IF_H
#define _QED_IF_H
#include <linux/ethtool.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/pci.h>
#include <linux/skbuff.h>
#include <asm/byteorder.h>
#include <linux/io.h>
#include <linux/compiler.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/qed/common_hsi.h>
#include <linux/qed/qed_chain.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include <net/devlink.h>
#define QED_TX_SWS_TIMER_DFLT …
#define QED_TWO_MSL_TIMER_DFLT …
enum dcbx_protocol_type { … };
#define QED_ROCE_PROTOCOL_INDEX …
#define QED_LLDP_CHASSIS_ID_STAT_LEN …
#define QED_LLDP_PORT_ID_STAT_LEN …
#define QED_DCBX_MAX_APP_PROTOCOL …
#define QED_MAX_PFC_PRIORITIES …
#define QED_DCBX_DSCP_SIZE …
struct qed_dcbx_lldp_remote { … };
struct qed_dcbx_lldp_local { … };
struct qed_dcbx_app_prio { … };
struct qed_dbcx_pfc_params { … };
enum qed_dcbx_sf_ieee_type { … };
struct qed_app_entry { … };
struct qed_dcbx_params { … };
struct qed_dcbx_admin_params { … };
struct qed_dcbx_remote_params { … };
struct qed_dcbx_operational_params { … };
struct qed_dcbx_get { … };
enum qed_nvm_images { … };
struct qed_link_eee_params { … };
enum qed_led_mode { … };
struct qed_mfw_tlv_eth { … };
#define QED_MFW_TLV_TIME_SIZE …
struct qed_mfw_tlv_time { … };
struct qed_mfw_tlv_fcoe { … };
struct qed_mfw_tlv_iscsi { … };
enum qed_db_rec_width { … };
enum qed_db_rec_space { … };
#define DIRECT_REG_WR(reg_addr, val) …
#define DIRECT_REG_RD(reg_addr) …
#define DIRECT_REG_WR64(reg_addr, val) …
#define QED_COALESCE_MAX …
#define QED_DEFAULT_RX_USECS …
#define QED_DEFAULT_TX_USECS …
struct qed_dev;
struct qed_eth_pf_params { … };
struct qed_fcoe_pf_params { … };
struct qed_iscsi_pf_params { … };
struct qed_nvmetcp_pf_params { … };
struct qed_rdma_pf_params { … };
struct qed_pf_params { … };
enum qed_int_mode { … };
struct qed_sb_info { … };
enum qed_hw_err_type { … };
enum qed_dev_type { … };
struct qed_dev_info { … };
enum qed_sb_type { … };
enum qed_protocol { … };
enum qed_fec_mode { … };
struct qed_link_params { … };
struct qed_link_output { … };
struct qed_probe_params { … };
#define QED_DRV_VER_STR_SIZE …
struct qed_slowpath_params { … };
#define ILT_PAGE_SIZE_TCFC …
struct qed_int_info { … };
struct qed_generic_tlvs { … };
#define QED_I2C_DEV_ADDR_A0 …
#define QED_I2C_DEV_ADDR_A2 …
#define QED_NVM_SIGNATURE …
enum qed_nvm_flash_cmd { … };
struct qed_devlink { … };
struct qed_sb_info_dbg { … };
struct qed_common_cb_ops { … };
struct qed_selftest_ops { … };
struct qed_common_ops { … };
#define MASK_FIELD(_name, _value) …
#define FIELD_VALUE(_name, _value) …
#define SET_FIELD(value, name, flag) …
#define GET_FIELD(value, name) …
#define GET_MFW_FIELD(name, field) …
#define SET_MFW_FIELD(name, field, value) …
#define DB_ADDR_SHIFT(addr) …
#define DP_ERR(cdev, fmt, ...) …
#define DP_NOTICE(cdev, fmt, ...) …
#define DP_INFO(cdev, fmt, ...) …
#define DP_VERBOSE(cdev, module, fmt, ...) …
enum DP_LEVEL { … };
#define QED_LOG_LEVEL_SHIFT …
#define QED_LOG_VERBOSE_MASK …
#define QED_LOG_INFO_MASK …
#define QED_LOG_NOTICE_MASK …
enum DP_MODULE { … };
enum qed_mf_mode { … };
struct qed_eth_stats_common { … };
struct qed_eth_stats_bb { … };
struct qed_eth_stats_ah { … };
struct qed_eth_stats { … };
#define QED_SB_IDX …
#define RX_PI …
#define TX_PI(tc) …
struct qed_sb_cnt_info { … };
static inline u16 qed_sb_update_sb_idx(struct qed_sb_info *sb_info)
{ … }
static inline void qed_sb_ack(struct qed_sb_info *sb_info,
enum igu_int_cmd int_cmd,
u8 upd_flg)
{ … }
static inline void __internal_ram_wr(void *p_hwfn,
void __iomem *addr,
int size,
u32 *data)
{ … }
static inline void internal_ram_wr(void __iomem *addr,
int size,
u32 *data)
{ … }
enum qed_rss_caps { … };
#define QED_RSS_IND_TABLE_SIZE …
#define QED_RSS_KEY_SIZE …
#endif