#ifndef __BNAD_H__
#define __BNAD_H__
#include <linux/rtnetlink.h>
#include <linux/workqueue.h>
#include <linux/ipv6.h>
#include <linux/etherdevice.h>
#include <linux/mutex.h>
#include <linux/firmware.h>
#include <linux/if_vlan.h>
#include <asm/checksum.h>
#include <net/ip6_checksum.h>
#include <net/ip.h>
#include <net/tcp.h>
#include "bna.h"
#define BNAD_TXQ_DEPTH …
#define BNAD_RXQ_DEPTH …
#define BNAD_MAX_TX …
#define BNAD_MAX_TXQ_PER_TX …
#define BNAD_TXQ_NUM …
#define BNAD_MAX_RX …
#define BNAD_MAX_RXP_PER_RX …
#define BNAD_MAX_RXQ_PER_RXP …
struct bnad_rx_ctrl { … };
#define BNAD_RXMODE_PROMISC_DEFAULT …
#define BNAD_NAME …
#define BNAD_NAME_LEN …
#define BNAD_MAILBOX_MSIX_INDEX …
#define BNAD_MAILBOX_MSIX_VECTORS …
#define BNAD_INTX_TX_IB_BITMASK …
#define BNAD_INTX_RX_IB_BITMASK …
#define BNAD_STATS_TIMER_FREQ …
#define BNAD_DIM_TIMER_FREQ …
#define BNAD_IOCETH_TIMEOUT …
#define BNAD_MIN_Q_DEPTH …
#define BNAD_MAX_RXQ_DEPTH …
#define BNAD_MAX_TXQ_DEPTH …
#define BNAD_JUMBO_MTU …
#define BNAD_NETIF_WAKE_THRESHOLD …
#define BNAD_RXQ_REFILL_THRESHOLD_SHIFT …
#define BNAD_TXQ_FREE_SENT …
#define BNAD_TXQ_TX_STARTED …
#define BNAD_RXQ_STARTED …
#define BNAD_RXQ_POST_OK …
#define BNAD_NUM_TXQ …
#define BNAD_NUM_RXP …
#define BNAD_FRAME_SIZE(_mtu) …
enum bnad_intr_source { … };
enum bnad_link_state { … };
struct bnad_iocmd_comp { … };
struct bnad_completion { … };
struct bnad_drv_stats { … };
struct bnad_stats { … };
struct bnad_tx_res_info { … };
struct bnad_rx_res_info { … };
struct bnad_tx_info { … } ____cacheline_aligned;
struct bnad_rx_info { … } ____cacheline_aligned;
struct bnad_tx_vector { … };
struct bnad_tx_unmap { … };
struct bnad_rx_vector { … };
struct bnad_rx_unmap { … };
enum bnad_rxbuf_type { … };
#define BNAD_RXBUF_IS_SK_BUFF(_type) …
#define BNAD_RXBUF_IS_MULTI_BUFF(_type) …
struct bnad_rx_unmap_q { … };
#define BNAD_PCI_DEV_IS_CAT2(_bnad) …
#define BNAD_CF_DIM_ENABLED …
#define BNAD_CF_PROMISC …
#define BNAD_CF_ALLMULTI …
#define BNAD_CF_DEFAULT …
#define BNAD_CF_MSIX …
#define BNAD_RF_CEE_RUNNING …
#define BNAD_RF_MTU_SET …
#define BNAD_RF_MBOX_IRQ_DISABLED …
#define BNAD_RF_NETDEV_REGISTERED …
#define BNAD_RF_DIM_TIMER_RUNNING …
#define BNAD_RF_STATS_TIMER_RUNNING …
#define BNAD_RF_TX_PRIO_SET …
struct bnad { … };
struct bnad_drvinfo { … };
extern const struct firmware *bfi_fw;
u32 *cna_get_firmware_buf(struct pci_dev *pdev);
void bnad_set_rx_mode(struct net_device *netdev);
struct net_device_stats *bnad_get_netdev_stats(struct net_device *netdev);
int bnad_mac_addr_set_locked(struct bnad *bnad, const u8 *mac_addr);
int bnad_enable_default_bcast(struct bnad *bnad);
void bnad_restore_vlans(struct bnad *bnad, u32 rx_id);
void bnad_set_ethtool_ops(struct net_device *netdev);
void bnad_cb_completion(void *arg, enum bfa_status status);
void bnad_tx_coalescing_timeo_set(struct bnad *bnad);
void bnad_rx_coalescing_timeo_set(struct bnad *bnad);
int bnad_setup_rx(struct bnad *bnad, u32 rx_id);
int bnad_setup_tx(struct bnad *bnad, u32 tx_id);
void bnad_destroy_tx(struct bnad *bnad, u32 tx_id);
void bnad_destroy_rx(struct bnad *bnad, u32 rx_id);
void bnad_dim_timer_start(struct bnad *bnad);
void bnad_netdev_qstats_fill(struct bnad *bnad,
struct rtnl_link_stats64 *stats);
void bnad_netdev_hwstats_fill(struct bnad *bnad,
struct rtnl_link_stats64 *stats);
void bnad_debugfs_init(struct bnad *bnad);
void bnad_debugfs_uninit(struct bnad *bnad);
#define BNAD_UPDATE_CTR(_bnad, _ctr) …
#define BNAD_GET_CTR(_bnad, _ctr) …
#define bnad_enable_rx_irq_unsafe(_ccb) …
#endif