#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/workqueue.h>
#include "adf_accel_devices.h"
#include "adf_common_drv.h"
#include "adf_cfg.h"
#include "adf_cfg_strings.h"
#include "adf_cfg_common.h"
#include "adf_transport_access_macros.h"
#include "adf_transport_internal.h"
#define ADF_VINTSOU_OFFSET …
#define ADF_VINTMSK_OFFSET …
#define ADF_VINTSOU_BUN …
#define ADF_VINTSOU_PF2VF …
static struct workqueue_struct *adf_vf_stop_wq;
struct adf_vf_stop_data { … };
void adf_enable_pf2vf_interrupts(struct adf_accel_dev *accel_dev)
{ … }
void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static int adf_enable_msi(struct adf_accel_dev *accel_dev)
{ … }
static void adf_disable_msi(struct adf_accel_dev *accel_dev)
{ … }
static void adf_dev_stop_async(struct work_struct *work)
{ … }
int adf_pf2vf_handle_pf_restarting(struct adf_accel_dev *accel_dev)
{ … }
static void adf_pf2vf_bh_handler(void *data)
{ … }
static int adf_setup_pf2vf_bh(struct adf_accel_dev *accel_dev)
{ … }
static void adf_cleanup_pf2vf_bh(struct adf_accel_dev *accel_dev)
{ … }
static irqreturn_t adf_isr(int irq, void *privdata)
{ … }
static int adf_request_msi_irq(struct adf_accel_dev *accel_dev)
{ … }
static int adf_setup_bh(struct adf_accel_dev *accel_dev)
{ … }
static void adf_cleanup_bh(struct adf_accel_dev *accel_dev)
{ … }
void adf_vf_isr_resource_free(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int adf_vf_isr_resource_alloc(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void adf_flush_vf_wq(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
int __init adf_init_vf_wq(void)
{ … }
void adf_exit_vf_wq(void)
{ … }