summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorVojtech Pavlik <vojtech@suse.cz>2003-02-12 12:41:07 +0100
committerVojtech Pavlik <vojtech@suse.cz>2003-02-12 12:41:07 +0100
commit7a4d842a773aced09bab3067bdde833fce49bd8a (patch)
tree7770a7da11b076377dd57373f8ef9f41356f588c /include/linux
parentbb5cc62fe723cd7235a5320651903c453d9f8f20 (diff)
input: Get rid of the kbd_pt_regs variable, and instead pass the
value all the way from an interrupt handler to keyboard.c that can display it.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hiddev.h4
-rw-r--r--include/linux/input.h5
-rw-r--r--include/linux/serio.h11
3 files changed, 14 insertions, 6 deletions
diff --git a/include/linux/hiddev.h b/include/linux/hiddev.h
index a2e1c8e09020..dc6d8dd843b5 100644
--- a/include/linux/hiddev.h
+++ b/include/linux/hiddev.h
@@ -204,7 +204,7 @@ struct hiddev_usage_ref {
int hiddev_connect(struct hid_device *);
void hiddev_disconnect(struct hid_device *);
void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
- struct hid_usage *usage, __s32 value);
+ struct hid_usage *usage, __s32 value, struct pt_regs *regs);
void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
int __init hiddev_init(void);
void __exit hiddev_exit(void);
@@ -212,7 +212,7 @@ void __exit hiddev_exit(void);
static inline int hiddev_connect(struct hid_device *hid) { return -1; }
static inline void hiddev_disconnect(struct hid_device *hid) { }
static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
- struct hid_usage *usage, __s32 value) { }
+ struct hid_usage *usage, __s32 value, struct pt_regs *regs) { }
static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
static inline int hiddev_init(void) { return 0; }
static inline void hiddev_exit(void) { }
diff --git a/include/linux/input.h b/include/linux/input.h
index d3425c78d822..5991c97b45cc 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -774,6 +774,7 @@ struct input_dev {
struct timer_list timer;
struct pm_dev *pm_dev;
+ struct pt_regs *regs;
int state;
int sync;
@@ -899,13 +900,15 @@ void input_unregister_minor(devfs_handle_t handle);
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value);
-#define input_sync(a) input_event(a, EV_SYN, SYN_REPORT, 0)
#define input_report_key(a,b,c) input_event(a, EV_KEY, b, !!(c))
#define input_report_rel(a,b,c) input_event(a, EV_REL, b, c)
#define input_report_abs(a,b,c) input_event(a, EV_ABS, b, c)
#define input_report_ff(a,b,c) input_event(a, EV_FF, b, c)
#define input_report_ff_status(a,b,c) input_event(a, EV_FF_STATUS, b, c)
+#define input_regs(a,b) do { (a)->regs = (b); } while (0)
+#define input_sync(a) do { input_event(a, EV_SYN, SYN_REPORT, 0); (a)->regs = NULL; } while (0)
+
extern struct device_class input_devclass;
#endif
diff --git a/include/linux/serio.h b/include/linux/serio.h
index 2e45f82a554d..751b0690668d 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -10,10 +10,13 @@
*/
#include <linux/ioctl.h>
-#include <linux/list.h>
#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
+#ifdef __KERNEL__
+
+#include <linux/list.h>
+
struct serio;
struct serio {
@@ -47,7 +50,7 @@ struct serio_dev {
char *name;
void (*write_wakeup)(struct serio *);
- void (*interrupt)(struct serio *, unsigned char, unsigned int);
+ void (*interrupt)(struct serio *, unsigned char, unsigned int, struct pt_regs *);
void (*connect)(struct serio *, struct serio_dev *dev);
void (*disconnect)(struct serio *);
void (*cleanup)(struct serio *);
@@ -58,7 +61,7 @@ struct serio_dev {
int serio_open(struct serio *serio, struct serio_dev *dev);
void serio_close(struct serio *serio);
void serio_rescan(struct serio *serio);
-void serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags);
+void serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs);
void serio_register_port(struct serio *serio);
void serio_unregister_port(struct serio *serio);
@@ -85,6 +88,8 @@ static __inline__ void serio_cleanup(struct serio *serio)
serio->dev->cleanup(serio);
}
+#endif
+
/*
* bit masks for use in "interrupt" flags (3rd argument)
*/