#include <linux/init.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/rtnetlink.h>
#include <linux/types.h>
#include "fbnic.h"
#include "fbnic_drvinfo.h"
#include "fbnic_netdev.h"
char fbnic_driver_name[] = …;
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;
static const struct fbnic_info fbnic_asic_info = …;
static const struct fbnic_info *fbnic_info_tbl[] = …;
static const struct pci_device_id fbnic_pci_tbl[] = …;
MODULE_DEVICE_TABLE(pci, fbnic_pci_tbl);
u32 fbnic_rd32(struct fbnic_dev *fbd, u32 reg)
{ … }
bool fbnic_fw_present(struct fbnic_dev *fbd)
{ … }
void fbnic_fw_wr32(struct fbnic_dev *fbd, u32 reg, u32 val)
{ … }
u32 fbnic_fw_rd32(struct fbnic_dev *fbd, u32 reg)
{ … }
static void fbnic_service_task_start(struct fbnic_net *fbn)
{ … }
static void fbnic_service_task_stop(struct fbnic_net *fbn)
{ … }
void fbnic_up(struct fbnic_net *fbn)
{ … }
static void fbnic_down_noidle(struct fbnic_net *fbn)
{ … }
void fbnic_down(struct fbnic_net *fbn)
{ … }
static void fbnic_health_check(struct fbnic_dev *fbd)
{ … }
static void fbnic_service_task(struct work_struct *work)
{ … }
static int fbnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ … }
static void fbnic_remove(struct pci_dev *pdev)
{ … }
static int fbnic_pm_suspend(struct device *dev)
{ … }
static int __fbnic_pm_resume(struct device *dev)
{ … }
static void __fbnic_pm_attach(struct device *dev)
{ … }
static int __maybe_unused fbnic_pm_resume(struct device *dev)
{ … }
static const struct dev_pm_ops fbnic_pm_ops = …;
static void fbnic_shutdown(struct pci_dev *pdev)
{ … }
static pci_ers_result_t fbnic_err_error_detected(struct pci_dev *pdev,
pci_channel_state_t state)
{ … }
static pci_ers_result_t fbnic_err_slot_reset(struct pci_dev *pdev)
{ … }
static void fbnic_err_resume(struct pci_dev *pdev)
{ … }
static const struct pci_error_handlers fbnic_err_handler = …;
static struct pci_driver fbnic_driver = …;
static int __init fbnic_init_module(void)
{ … }
module_init(…) …;
static void __exit fbnic_exit_module(void)
{ … }
module_exit(fbnic_exit_module);