Linux-2.6.12-rc2
[linux-flexiantxendom0-natty.git] / include / linux / ioctl32.h
1 #ifndef IOCTL32_H
2 #define IOCTL32_H 1
3
4 struct file;
5
6 typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int,
7                                         unsigned long, struct file *);
8
9 struct ioctl_trans {
10         unsigned long cmd;
11         ioctl_trans_handler_t handler;
12         struct ioctl_trans *next;
13 };
14
15 /* 
16  * Register an 32bit ioctl translation handler for ioctl cmd.
17  *
18  * handler == NULL: use 64bit ioctl handler.
19  * arguments to handler:  fd: file descriptor
20  *                        cmd: ioctl command.
21  *                        arg: ioctl argument
22  *                        struct file *file: file descriptor pointer.
23  */ 
24
25 #ifdef CONFIG_COMPAT
26 extern int register_ioctl32_conversion(unsigned int cmd,
27                                 ioctl_trans_handler_t handler);
28 extern int unregister_ioctl32_conversion(unsigned int cmd);
29
30 #else
31
32 #define register_ioctl32_conversion(cmd, handler)       ({ 0; })
33 #define unregister_ioctl32_conversion(cmd)              ({ 0; })
34
35 #endif
36
37 #endif