#ifndef IOCTL32_H
#define IOCTL32_H 1

#include <linux/compiler.h>	/* for __deprecated */

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 __deprecated register_ioctl32_conversion(unsigned int cmd,
				ioctl_trans_handler_t handler);
extern int __deprecated unregister_ioctl32_conversion(unsigned int cmd);

#else

#define register_ioctl32_conversion(cmd, handler)	({ 0; })
#define unregister_ioctl32_conversion(cmd)		({ 0; })

#endif

#endif
