diff options
Diffstat (limited to 'include/linux/ioctl32.h')
-rw-r--r-- | include/linux/ioctl32.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/linux/ioctl32.h b/include/linux/ioctl32.h new file mode 100644 index 000000000000..e1a641819428 --- /dev/null +++ b/include/linux/ioctl32.h @@ -0,0 +1,37 @@ +#ifndef IOCTL32_H +#define IOCTL32_H 1 + +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. + * + * handler == NULL: use 64bit ioctl handler. + * arguments to handler: fd: file descriptor + * cmd: ioctl command. + * arg: ioctl argument + * struct file *file: file descriptor pointer. + */ + +#ifdef CONFIG_COMPAT +extern int register_ioctl32_conversion(unsigned int cmd, + ioctl_trans_handler_t handler); +extern int unregister_ioctl32_conversion(unsigned int cmd); + +#else + +#define register_ioctl32_conversion(cmd, handler) ({ 0; }) +#define unregister_ioctl32_conversion(cmd) ({ 0; }) + +#endif + +#endif |