[PATCH] add ->compat_ioctl to dasd
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / ia64 / ia32 / ia32_ioctl.c
blob88739394f6df5b1471e9c75b5aa6dd91b9ccf6d3
1 /*
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>
8 */
10 #include <linux/signal.h> /* argh, msdos_fs.h isn't self-contained... */
11 #include <linux/syscalls.h>
12 #include "ia32priv.h"
14 #define INCLUDES
15 #include "compat_ioctl.c"
17 #define IOCTL_NR(a) ((a) & ~(_IOC_SIZEMASK << _IOC_SIZESHIFT))
19 #define DO_IOCTL(fd, cmd, arg) ({ \
20 int _ret; \
21 mm_segment_t _old_fs = get_fs(); \
23 set_fs(KERNEL_DS); \
24 _ret = sys_ioctl(fd, cmd, (unsigned long)arg); \
25 set_fs(_old_fs); \
26 _ret; \
29 #define CODE
30 #include "compat_ioctl.c"
32 #define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL((cmd),sys_ioctl)
33 #define HANDLE_IOCTL(cmd,handler) { (cmd), (ioctl_trans_handler_t)(handler), NULL },
34 #define IOCTL_TABLE_START \
35 struct ioctl_trans ioctl_start[] = {
36 #define IOCTL_TABLE_END \
39 IOCTL_TABLE_START
40 #define DECLARES
41 #include "compat_ioctl.c"
42 #include <linux/compat_ioctl.h>
43 IOCTL_TABLE_END
45 int ioctl_table_size = ARRAY_SIZE(ioctl_start);