#include <linux/module.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include "jsm.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define JSM_DRIVER_NAME …
#define NR_PORTS …
#define JSM_MINOR_START …
struct uart_driver jsm_uart_driver = …;
static pci_ers_result_t jsm_io_error_detected(struct pci_dev *pdev,
pci_channel_state_t state);
static pci_ers_result_t jsm_io_slot_reset(struct pci_dev *pdev);
static void jsm_io_resume(struct pci_dev *pdev);
static const struct pci_error_handlers jsm_err_handler = …;
int jsm_debug;
module_param(jsm_debug, int, 0);
MODULE_PARM_DESC(…) …;
static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
{ … }
static void jsm_remove_one(struct pci_dev *pdev)
{ … }
static const struct pci_device_id jsm_pci_tbl[] = …;
MODULE_DEVICE_TABLE(pci, jsm_pci_tbl);
static struct pci_driver jsm_driver = …;
static pci_ers_result_t jsm_io_error_detected(struct pci_dev *pdev,
pci_channel_state_t state)
{ … }
static pci_ers_result_t jsm_io_slot_reset(struct pci_dev *pdev)
{ … }
static void jsm_io_resume(struct pci_dev *pdev)
{ … }
static int __init jsm_init_module(void)
{ … }
static void __exit jsm_exit_module(void)
{ … }
module_init(…) …;
module_exit(jsm_exit_module);