#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/panic_notifier.h>
#include <linux/reboot.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/timer.h>
#include "../leds.h"
static int panic_detected;
struct activity_data { … };
static void led_activity_function(struct timer_list *t)
{ … }
static ssize_t led_invert_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t led_invert_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t size)
{ … }
static DEVICE_ATTR(invert, 0644, led_invert_show, led_invert_store);
static struct attribute *activity_led_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static int activity_activate(struct led_classdev *led_cdev)
{ … }
static void activity_deactivate(struct led_classdev *led_cdev)
{ … }
static struct led_trigger activity_led_trigger = …;
static int activity_reboot_notifier(struct notifier_block *nb,
unsigned long code, void *unused)
{ … }
static int activity_panic_notifier(struct notifier_block *nb,
unsigned long code, void *unused)
{ … }
static struct notifier_block activity_reboot_nb = …;
static struct notifier_block activity_panic_nb = …;
static int __init activity_init(void)
{ … }
static void __exit activity_exit(void)
{ … }
module_init(…) …;
module_exit(activity_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;