1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
# 2004/08/27 10:32:29-07:00 akpm@osdl.org
# [PATCH] [un]register_ioctl32_conversion() stubs
#
# The megaraid driver is calling these, but they don't exist if !CONFIG_COMPAT.
# Add the necessary stubs, and clean a few things up.
#
# Signed-off-by: Andrew Morton <akpm@osdl.org>
# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
#
# fs/compat.c
# 2004/08/27 00:26:26-07:00 akpm@osdl.org +2 -2
# [un]register_ioctl32_conversion() stubs
#
# include/linux/ioctl32.h
# 2004/08/26 23:30:32-07:00 akpm@osdl.org +17 -8
# [un]register_ioctl32_conversion() stubs
#
diff -Naru a/fs/compat.c b/fs/compat.c
--- a/fs/compat.c 2005-10-26 01:53:18 -07:00
+++ b/fs/compat.c 2005-10-26 01:53:18 -07:00
@@ -291,8 +291,8 @@
__initcall(init_sys32_ioctl);
-int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int,
- unsigned int, unsigned long, struct file *))
+int register_ioctl32_conversion(unsigned int cmd,
+ ioctl_trans_handler_t handler)
{
struct ioctl_trans *t;
struct ioctl_trans *new_t;
diff -Naru a/include/linux/ioctl32.h b/include/linux/ioctl32.h
--- a/include/linux/ioctl32.h 2005-10-26 01:53:18 -07:00
+++ b/include/linux/ioctl32.h 2005-10-26 01:53:18 -07:00
@@ -3,6 +3,15 @@
struct file;
+typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int,
+ unsigned long, struct file *);
+
+struct ioctl_trans {
+ unsigned long cmd;
+ ioctl_trans_handler_t handler;
+ struct ioctl_trans *next;
+};
+
/*
* Register an 32bit ioctl translation handler for ioctl cmd.
*
@@ -13,16 +22,16 @@
* struct file *file: file descriptor pointer.
*/
-extern int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file *));
-
+#ifdef CONFIG_COMPAT
+extern int register_ioctl32_conversion(unsigned int cmd,
+ ioctl_trans_handler_t handler);
extern int unregister_ioctl32_conversion(unsigned int cmd);
-typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int, unsigned long, struct file *);
+#else
-struct ioctl_trans {
- unsigned long cmd;
- ioctl_trans_handler_t handler;
- struct ioctl_trans *next;
-};
+#define register_ioctl32_conversion(cmd, handler) ({ 0; })
+#define unregister_ioctl32_conversion(cmd) ({ 0; })
+
+#endif
#endif
|