#include <linux/export.h>
#include <linux/uaccess.h>
#include "input-compat.h"
int input_event_from_user(const char __user *buffer,
struct input_event *event)
if (in_compat_syscall() && !COMPAT_USE_64BIT_TIME) {
struct input_event_compat compat_event;
if (copy_from_user(&compat_event, buffer,
sizeof(struct input_event_compat)))
event->input_event_sec = compat_event.sec;
event->input_event_usec = compat_event.usec;
event->type = compat_event.type;
event->code = compat_event.code;
event->value = compat_event.value;
if (copy_from_user(event, buffer, sizeof(struct input_event)))
int input_event_to_user(char __user *buffer,
const struct input_event *event)
if (in_compat_syscall() && !COMPAT_USE_64BIT_TIME) {
struct input_event_compat compat_event;
compat_event.sec = event->input_event_sec;
compat_event.usec = event->input_event_usec;
compat_event.type = event->type;
compat_event.code = event->code;
compat_event.value = event->value;
if (copy_to_user(buffer, &compat_event,
sizeof(struct input_event_compat)))
if (copy_to_user(buffer, event, sizeof(struct input_event)))