Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
input
input-compat.h
Go to the documentation of this file.
1
#ifndef _INPUT_COMPAT_H
2
#define _INPUT_COMPAT_H
3
4
/*
5
* 32bit compatibility wrappers for the input subsystem.
6
*
7
* Very heavily based on evdev.c - Copyright (c) 1999-2002 Vojtech Pavlik
8
*
9
* This program is free software; you can redistribute it and/or modify it
10
* under the terms of the GNU General Public License version 2 as published by
11
* the Free Software Foundation.
12
*/
13
14
#include <linux/compiler.h>
15
#include <
linux/compat.h
>
16
#include <linux/input.h>
17
18
#ifdef CONFIG_COMPAT
19
20
/* Note to the author of this code: did it ever occur to
21
you why the ifdefs are needed? Think about it again. -AK */
22
#if defined(CONFIG_X86_64) || defined(CONFIG_TILE)
23
# define INPUT_COMPAT_TEST is_compat_task()
24
#elif defined(CONFIG_S390)
25
# define INPUT_COMPAT_TEST test_thread_flag(TIF_31BIT)
26
#elif defined(CONFIG_MIPS)
27
# define INPUT_COMPAT_TEST test_thread_flag(TIF_32BIT_ADDR)
28
#else
29
# define INPUT_COMPAT_TEST test_thread_flag(TIF_32BIT)
30
#endif
31
32
struct
input_event_compat {
33
struct
compat_timeval
time
;
34
__u16
type
;
35
__u16
code
;
36
__s32
value
;
37
};
38
39
struct
ff_periodic_effect_compat {
40
__u16
waveform;
41
__u16
period
;
42
__s16
magnitude;
43
__s16
offset
;
44
__u16
phase
;
45
46
struct
ff_envelope
envelope;
47
48
__u32
custom_len;
49
compat_uptr_t
custom_data;
50
};
51
52
struct
ff_effect_compat {
53
__u16
type
;
54
__s16
id
;
55
__u16
direction
;
56
struct
ff_trigger
trigger
;
57
struct
ff_replay
replay;
58
59
union
{
60
struct
ff_constant_effect
constant;
61
struct
ff_ramp_effect
ramp;
62
struct
ff_periodic_effect_compat periodic;
63
struct
ff_condition_effect
condition[2];
/* One for each axis */
64
struct
ff_rumble_effect
rumble;
65
}
u
;
66
};
67
68
static
inline
size_t
input_event_size(
void
)
69
{
70
return
(INPUT_COMPAT_TEST && !COMPAT_USE_64BIT_TIME) ?
71
sizeof
(
struct
input_event_compat) :
sizeof
(struct input_event);
72
}
73
74
#else
75
76
static
inline
size_t
input_event_size(void)
77
{
78
return
sizeof
(
struct
input_event
);
79
}
80
81
#endif
/* CONFIG_COMPAT */
82
83
int
input_event_from_user
(
const
char
__user *
buffer
,
84
struct
input_event
*
event
);
85
86
int
input_event_to_user
(
char
__user *
buffer
,
87
const
struct
input_event
*
event
);
88
89
int
input_ff_effect_from_user
(
const
char
__user *
buffer
,
size_t
size
,
90
struct
ff_effect
*effect);
91
92
#endif
/* _INPUT_COMPAT_H */
Generated on Thu Jan 10 2013 13:38:51 for Linux Kernel by
1.8.2