#include <linux/pci.h>
#include <linux/vmalloc.h>
#include "core.h"
static BLOCKING_NOTIFIER_HEAD(pds_notify_chain);
int pdsc_register_notify(struct notifier_block *nb)
{ … }
EXPORT_SYMBOL_GPL(…);
void pdsc_unregister_notify(struct notifier_block *nb)
{ … }
EXPORT_SYMBOL_GPL(…);
void pdsc_notify(unsigned long event, void *data)
{ … }
void pdsc_intr_free(struct pdsc *pdsc, int index)
{ … }
int pdsc_intr_alloc(struct pdsc *pdsc, char *name,
irq_handler_t handler, void *data)
{ … }
static void pdsc_qcq_intr_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
{ … }
static int pdsc_qcq_intr_alloc(struct pdsc *pdsc, struct pdsc_qcq *qcq)
{ … }
void pdsc_qcq_free(struct pdsc *pdsc, struct pdsc_qcq *qcq)
{ … }
static void pdsc_q_map(struct pdsc_queue *q, void *base, dma_addr_t base_pa)
{ … }
static void pdsc_cq_map(struct pdsc_cq *cq, void *base, dma_addr_t base_pa)
{ … }
int pdsc_qcq_alloc(struct pdsc *pdsc, unsigned int type, unsigned int index,
const char *name, unsigned int flags, unsigned int num_descs,
unsigned int desc_size, unsigned int cq_desc_size,
unsigned int pid, struct pdsc_qcq *qcq)
{ … }
static void pdsc_core_uninit(struct pdsc *pdsc)
{ … }
static int pdsc_core_init(struct pdsc *pdsc)
{ … }
static struct pdsc_viftype pdsc_viftype_defaults[] = …;
static int pdsc_viftypes_init(struct pdsc *pdsc)
{ … }
int pdsc_setup(struct pdsc *pdsc, bool init)
{ … }
void pdsc_teardown(struct pdsc *pdsc, bool removing)
{ … }
int pdsc_start(struct pdsc *pdsc)
{ … }
void pdsc_stop(struct pdsc *pdsc)
{ … }
static void pdsc_adminq_wait_and_dec_once_unused(struct pdsc *pdsc)
{ … }
void pdsc_fw_down(struct pdsc *pdsc)
{ … }
void pdsc_fw_up(struct pdsc *pdsc)
{ … }
void pdsc_pci_reset_thread(struct work_struct *work)
{ … }
static void pdsc_check_pci_health(struct pdsc *pdsc)
{ … }
void pdsc_health_thread(struct work_struct *work)
{ … }