#include <linux/irq.h>
#define MODULE_NAME "diag"
-#define MAX_GPIO 8
+#define MAX_GPIO 16
#define FLASH_TIME HZ/6
enum polarity_t {
REVERSE = 0,
NORMAL = 1,
+ INPUT = 2,
};
enum {
struct event_t {
struct work_struct wq;
- char buf[256];
- char *argv[3];
- char *envp[6];
+ unsigned long seen;
+ char *name, *action;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
+ struct sk_buff *skb;
+#else
+ char *scratch;
+ char *argv[4];
+ char *envp[7];
+ u8 enr, anr;
+#endif
};
extern char *nvram_get(char *str);
static void register_buttons(struct button_t *b);
static void unregister_buttons(struct button_t *b);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+#ifndef LINUX_2_4
static void hotplug_button(struct work_struct *work);
+static irqreturn_t button_handler(int irq, void *dev_id);
#else
static void hotplug_button(struct event_t *event);
-#endif
static irqreturn_t button_handler(int irq, void *dev_id, struct pt_regs *regs);
+#endif
/* leds */