#include <asm/page.h>
#include <linux/uaccess.h>
#include <linux/ctype.h>
#include <linux/highmem.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/smp.h>
#include <linux/spinlock.h>
#include <linux/sysctl.h>
#include <linux/timer.h>
#include "edac_pci.h"
#include "edac_module.h"
static DEFINE_MUTEX(edac_pci_ctls_mutex);
static LIST_HEAD(edac_pci_list);
static atomic_t pci_indexes = …;
struct edac_pci_ctl_info *edac_pci_alloc_ctl_info(unsigned int sz_pvt,
const char *edac_pci_name)
{ … }
EXPORT_SYMBOL_GPL(…);
void edac_pci_free_ctl_info(struct edac_pci_ctl_info *pci)
{ … }
EXPORT_SYMBOL_GPL(…);
static struct edac_pci_ctl_info *find_edac_pci_by_dev(struct device *dev)
{ … }
static int add_edac_pci_to_global_list(struct edac_pci_ctl_info *pci)
{ … }
static void del_edac_pci_from_global_list(struct edac_pci_ctl_info *pci)
{ … }
static void edac_pci_workq_function(struct work_struct *work_req)
{ … }
int edac_pci_alloc_index(void)
{ … }
EXPORT_SYMBOL_GPL(…);
int edac_pci_add_device(struct edac_pci_ctl_info *pci, int edac_idx)
{ … }
EXPORT_SYMBOL_GPL(…);
struct edac_pci_ctl_info *edac_pci_del_device(struct device *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static void edac_pci_generic_check(struct edac_pci_ctl_info *pci)
{ … }
static int edac_pci_idx;
#define EDAC_PCI_GENCTL_NAME …
struct edac_pci_gen_data { … };
struct edac_pci_ctl_info *edac_pci_create_generic_ctl(struct device *dev,
const char *mod_name)
{ … }
EXPORT_SYMBOL_GPL(…);
void edac_pci_release_generic_ctl(struct edac_pci_ctl_info *pci)
{ … }
EXPORT_SYMBOL_GPL(…);