#ifndef __BFA_IOC_H__
#define __BFA_IOC_H__
#include "bfa_cs.h"
#include "bfi.h"
#include "cna.h"
#define BFA_IOC_TOV …
#define BFA_IOC_HWSEM_TOV …
#define BFA_IOC_HB_TOV …
#define BFA_IOC_POLL_TOV …
#define BNA_DBG_FWTRC_LEN …
struct bfa_pcidev { … };
struct bfa_dma { … };
#define BFA_DMA_ALIGN_SZ …
#define BFI_SMEM_CB_SIZE …
#define BFI_SMEM_CT_SIZE …
#define bfa_dma_be_addr_set(dma_addr, pa) …
static inline void
__bfa_dma_be_addr_set(union bfi_addr_u *dma_addr, u64 pa)
{ … }
#define bfa_alen_set(__alen, __len, __pa) …
static inline void
__bfa_alen_set(struct bfi_alen *alen, u32 len, u64 pa)
{ … }
struct bfa_ioc_regs { … };
bfa_mbox_cmd_cbfn_t;
struct bfa_mbox_cmd { … };
bfa_ioc_mbox_mcfunc_t;
struct bfa_ioc_mbox_mod { … };
bfa_ioc_enable_cbfn_t;
bfa_ioc_disable_cbfn_t;
bfa_ioc_hbfail_cbfn_t;
bfa_ioc_reset_cbfn_t;
struct bfa_ioc_cbfn { … };
enum bfa_ioc_event { … };
bfa_ioc_notify_cbfn_t;
struct bfa_ioc_notify { … };
#define bfa_ioc_notify_init(__notify, __cbfn, __cbarg) …
enum iocpf_event;
struct bfa_iocpf { … };
enum ioc_event;
struct bfa_ioc { … };
struct bfa_ioc_hwif { … };
#define bfa_ioc_pcifn(__ioc) …
#define bfa_ioc_devid(__ioc) …
#define bfa_ioc_bar0(__ioc) …
#define bfa_ioc_portid(__ioc) …
#define bfa_ioc_asic_gen(__ioc) …
#define bfa_ioc_is_default(__ioc) …
#define bfa_ioc_speed_sup(__ioc) …
#define bfa_ioc_get_nports(__ioc) …
#define bfa_ioc_stats(_ioc, _stats) …
#define bfa_ioc_stats_hb_count(_ioc, _hb_count) …
#define BFA_IOC_FWIMG_MINSZ …
#define BFA_IOC_FW_SMEM_SIZE(__ioc) …
#define BFA_IOC_FLASH_CHUNK_NO(off) …
#define BFA_IOC_FLASH_OFFSET_IN_CHUNK(off) …
#define BFA_IOC_FLASH_CHUNK_ADDR(chunkno) …
bool bfa_nw_ioc_mbox_queue(struct bfa_ioc *ioc,
struct bfa_mbox_cmd *cmd,
bfa_mbox_cmd_cbfn_t cbfn, void *cbarg);
void bfa_nw_ioc_mbox_isr(struct bfa_ioc *ioc);
void bfa_nw_ioc_mbox_regisr(struct bfa_ioc *ioc, enum bfi_mclass mc,
bfa_ioc_mbox_mcfunc_t cbfn, void *cbarg);
#define bfa_ioc_pll_init_asic(__ioc) …
#define bfa_ioc_lpu_read_stat(__ioc) …
void bfa_nw_ioc_set_ct_hwif(struct bfa_ioc *ioc);
void bfa_nw_ioc_set_ct2_hwif(struct bfa_ioc *ioc);
void bfa_nw_ioc_ct2_poweron(struct bfa_ioc *ioc);
void bfa_nw_ioc_attach(struct bfa_ioc *ioc, void *bfa,
struct bfa_ioc_cbfn *cbfn);
void bfa_nw_ioc_auto_recover(bool auto_recover);
void bfa_nw_ioc_detach(struct bfa_ioc *ioc);
void bfa_nw_ioc_pci_init(struct bfa_ioc *ioc, struct bfa_pcidev *pcidev,
enum bfi_pcifn_class clscode);
u32 bfa_nw_ioc_meminfo(void);
void bfa_nw_ioc_mem_claim(struct bfa_ioc *ioc, u8 *dm_kva, u64 dm_pa);
void bfa_nw_ioc_enable(struct bfa_ioc *ioc);
void bfa_nw_ioc_disable(struct bfa_ioc *ioc);
void bfa_nw_ioc_error_isr(struct bfa_ioc *ioc);
bool bfa_nw_ioc_is_disabled(struct bfa_ioc *ioc);
bool bfa_nw_ioc_is_operational(struct bfa_ioc *ioc);
void bfa_nw_ioc_get_attr(struct bfa_ioc *ioc, struct bfa_ioc_attr *ioc_attr);
enum bfa_status bfa_nw_ioc_fwsig_invalidate(struct bfa_ioc *ioc);
void bfa_nw_ioc_notify_register(struct bfa_ioc *ioc,
struct bfa_ioc_notify *notify);
bool bfa_nw_ioc_sem_get(void __iomem *sem_reg);
void bfa_nw_ioc_sem_release(void __iomem *sem_reg);
void bfa_nw_ioc_hw_sem_release(struct bfa_ioc *ioc);
void bfa_nw_ioc_fwver_get(struct bfa_ioc *ioc,
struct bfi_ioc_image_hdr *fwhdr);
bool bfa_nw_ioc_fwver_cmp(struct bfa_ioc *ioc,
struct bfi_ioc_image_hdr *fwhdr);
void bfa_nw_ioc_get_mac(struct bfa_ioc *ioc, u8 *mac);
void bfa_nw_ioc_debug_memclaim(struct bfa_ioc *ioc, void *dbg_fwsave);
int bfa_nw_ioc_debug_fwtrc(struct bfa_ioc *ioc, void *trcdata, int *trclen);
int bfa_nw_ioc_debug_fwsave(struct bfa_ioc *ioc, void *trcdata, int *trclen);
void bfa_nw_ioc_timeout(struct bfa_ioc *ioc);
void bfa_nw_ioc_hb_check(struct bfa_ioc *ioc);
void bfa_nw_iocpf_timeout(struct bfa_ioc *ioc);
void bfa_nw_iocpf_sem_timeout(struct bfa_ioc *ioc);
u32 *bfa_cb_image_get_chunk(enum bfi_asic_gen asic_gen, u32 off);
u32 bfa_cb_image_get_size(enum bfi_asic_gen asic_gen);
bfa_cb_flash;
struct bfa_flash { … };
enum bfa_status bfa_nw_flash_get_attr(struct bfa_flash *flash,
struct bfa_flash_attr *attr,
bfa_cb_flash cbfn, void *cbarg);
enum bfa_status bfa_nw_flash_update_part(struct bfa_flash *flash,
u32 type, u8 instance, void *buf, u32 len, u32 offset,
bfa_cb_flash cbfn, void *cbarg);
enum bfa_status bfa_nw_flash_read_part(struct bfa_flash *flash,
u32 type, u8 instance, void *buf, u32 len, u32 offset,
bfa_cb_flash cbfn, void *cbarg);
u32 bfa_nw_flash_meminfo(void);
void bfa_nw_flash_attach(struct bfa_flash *flash,
struct bfa_ioc *ioc, void *dev);
void bfa_nw_flash_memclaim(struct bfa_flash *flash, u8 *dm_kva, u64 dm_pa);
#endif