#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/miscdevice.h>
#include <linux/watchdog.h>
#include <linux/notifier.h>
#include <linux/reboot.h>
#include <linux/fs.h>
#include <linux/spinlock.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/ioport.h>
#define NAME …
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static int max_units = …;
static int margin = …;
module_param(margin, int, 0);
MODULE_PARM_DESC(…) …;
static bool nowayout = … WATCHDOG_NOWAYOUT;
module_param(nowayout, bool, 0);
MODULE_PARM_DESC(…) …;
static unsigned long wdt_open;
static unsigned expect_close;
static unsigned char revision;
static unsigned short address;
#define REG …
#define VAL …
#define LDN …
#define DEVID …
#define DEVREV …
#define ACT_REG …
#define BASE_REG …
#define IT8712F_DEVID …
#define LDN_GPIO …
#define LDN_GAME …
#define WDT_CONTROL …
#define WDT_CONFIG …
#define WDT_TIMEOUT …
#define WDT_RESET_GAME …
#define WDT_RESET_KBD …
#define WDT_RESET_MOUSE …
#define WDT_RESET_CIR …
#define WDT_UNIT_SEC …
#define WDT_OUT_PWROK …
#define WDT_OUT_KRST …
static int wdt_control_reg = …;
module_param(wdt_control_reg, int, 0);
MODULE_PARM_DESC(…) …;
static int superio_inb(int reg)
{ … }
static void superio_outb(int val, int reg)
{ … }
static int superio_inw(int reg)
{ … }
static inline void superio_select(int ldn)
{ … }
static inline int superio_enter(void)
{ … }
static inline void superio_exit(void)
{ … }
static inline void it8712f_wdt_ping(void)
{ … }
static void it8712f_wdt_update_margin(void)
{ … }
static int it8712f_wdt_get_status(void)
{ … }
static int it8712f_wdt_enable(void)
{ … }
static int it8712f_wdt_disable(void)
{ … }
static int it8712f_wdt_notify(struct notifier_block *this,
unsigned long code, void *unused)
{ … }
static struct notifier_block it8712f_wdt_notifier = …;
static ssize_t it8712f_wdt_write(struct file *file, const char __user *data,
size_t len, loff_t *ppos)
{ … }
static long it8712f_wdt_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{ … }
static int it8712f_wdt_open(struct inode *inode, struct file *file)
{ … }
static int it8712f_wdt_release(struct inode *inode, struct file *file)
{ … }
static const struct file_operations it8712f_wdt_fops = …;
static struct miscdevice it8712f_wdt_miscdev = …;
static int __init it8712f_wdt_find(unsigned short *address)
{ … }
static int __init it8712f_wdt_init(void)
{ … }
static void __exit it8712f_wdt_exit(void)
{ … }
module_init(…) …;
module_exit(it8712f_wdt_exit);