Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / linux / ioctl32.h
blobe1a6418194286396a720327e7a750b8c077e0402
1 #ifndef IOCTL32_H
2 #define IOCTL32_H 1
4 struct file;
6 typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int,
7 unsigned long, struct file *);
9 struct ioctl_trans {
10 unsigned long cmd;
11 ioctl_trans_handler_t handler;
12 struct ioctl_trans *next;
15 /*
16 * Register an 32bit ioctl translation handler for ioctl cmd.
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 */
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);
30 #else
32 #define register_ioctl32_conversion(cmd, handler) ({ 0; })
33 #define unregister_ioctl32_conversion(cmd) ({ 0; })
35 #endif
37 #endif