2 * IA32 Architecture-specific ioctl shim code
4 * Copyright (C) 2000 VA Linux Co
5 * Copyright (C) 2000 Don Dugger <n0ano@valinux.com>
6 * Copyright (C) 2001-2003 Hewlett-Packard Co
7 * David Mosberger-Tang <davidm@hpl.hp.com>
10 #include <linux/signal.h> /* argh, msdos_fs.h isn't self-contained... */
11 #include <linux/syscalls.h>
15 #include "compat_ioctl.c"
16 #include <asm/ioctl32.h>
18 #define IOCTL_NR(a) ((a) & ~(_IOC_SIZEMASK << _IOC_SIZESHIFT))
20 #define DO_IOCTL(fd, cmd, arg) ({ \
22 mm_segment_t _old_fs = get_fs(); \
25 _ret = sys_ioctl(fd, cmd, (unsigned long)arg); \
31 #include "compat_ioctl.c"
33 typedef int (* ioctl32_handler_t
)(unsigned int, unsigned int, unsigned long, struct file
*);
35 #define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL((cmd),sys_ioctl)
36 #define HANDLE_IOCTL(cmd,handler) { (cmd), (ioctl32_handler_t)(handler), NULL },
37 #define IOCTL_TABLE_START \
38 struct ioctl_trans ioctl_start[] = {
39 #define IOCTL_TABLE_END \
44 #include "compat_ioctl.c"
45 #include <linux/compat_ioctl.h>
48 int ioctl_table_size
= ARRAY_SIZE(ioctl_start
);