blob: e1a6418194286396a720327e7a750b8c077e0402 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef IOCTL32_H
2#define IOCTL32_H 1
3
4struct file;
5
6typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int,
7 unsigned long, struct file *);
8
9struct 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
26extern int register_ioctl32_conversion(unsigned int cmd,
27 ioctl_trans_handler_t handler);
28extern 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