#define pr_fmt(fmt) …
#include <linux/device.h>
#include <linux/clocksource.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/tick.h>
#include <linux/kthread.h>
#include <linux/delay.h>
#include <linux/prandom.h>
#include <linux/cpu.h>
#include "tick-internal.h"
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
static int holdoff = …;
module_param(holdoff, int, 0444);
MODULE_PARM_DESC(…) …;
static struct task_struct *wdtest_task;
static u64 wdtest_jiffies_read(struct clocksource *cs)
{ … }
static struct clocksource clocksource_wdtest_jiffies = …;
static int wdtest_ktime_read_ndelays;
static bool wdtest_ktime_read_fuzz;
static u64 wdtest_ktime_read(struct clocksource *cs)
{ … }
static void wdtest_ktime_cs_mark_unstable(struct clocksource *cs)
{ … }
#define KTIME_FLAGS …
static struct clocksource clocksource_wdtest_ktime = …;
static void wdtest_ktime_clocksource_reset(void)
{ … }
static int wdtest_func(void *arg)
{ … }
static void wdtest_print_module_parms(void)
{ … }
static void clocksource_wdtest_cleanup(void)
{ … }
static int __init clocksource_wdtest_init(void)
{ … }
module_init(…) …;
module_exit(clocksource_wdtest_cleanup);