| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * ioctl32.c: Conversion between 32bit and 64bit native ioctls. | 
 | 3 |  * | 
 | 4 |  *  S390 version | 
 | 5 |  *    Copyright (C) 2000-2003 IBM Deutschland Entwicklung GmbH, IBM Corporation | 
 | 6 |  *    Author(s): Gerhard Tonn (ton@de.ibm.com) | 
 | 7 |  *               Arnd Bergmann (arndb@de.ibm.com) | 
 | 8 |  * | 
 | 9 |  * Original implementation from 32-bit Sparc compat code which is | 
 | 10 |  * Copyright (C) 2000 Silicon Graphics, Inc. | 
 | 11 |  * Written by Ulf Carlsson (ulfc@engr.sgi.com)  | 
 | 12 |  */ | 
 | 13 |  | 
 | 14 | #include "compat_linux.h" | 
 | 15 | #define INCLUDES | 
 | 16 | #define CODE | 
 | 17 | #include "../../../fs/compat_ioctl.c" | 
 | 18 | #include <asm/dasd.h> | 
| Cornelia Huck | 4beb370 | 2005-05-01 08:58:59 -0700 | [diff] [blame] | 19 | #include <asm/cmb.h> | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 20 | #include <asm/tape390.h> | 
| Richard Hitt | ed3cb6f | 2005-10-30 15:00:10 -0800 | [diff] [blame] | 21 | #include <asm/ccwdev.h> | 
 | 22 | #include "../../../drivers/s390/char/raw3270.h" | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 |  | 
 | 24 | static int do_ioctl32_pointer(unsigned int fd, unsigned int cmd, | 
 | 25 | 				unsigned long arg, struct file *f) | 
 | 26 | { | 
 | 27 | 	return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg)); | 
 | 28 | } | 
 | 29 |  | 
 | 30 | static int do_ioctl32_ulong(unsigned int fd, unsigned int cmd, | 
 | 31 | 				unsigned long arg, struct file *f) | 
 | 32 | { | 
 | 33 | 	return sys_ioctl(fd, cmd, arg); | 
 | 34 | } | 
 | 35 |  | 
 | 36 | #define COMPATIBLE_IOCTL(cmd)		HANDLE_IOCTL((cmd),(ioctl_trans_handler_t)do_ioctl32_pointer) | 
 | 37 | #define ULONG_IOCTL(cmd)		HANDLE_IOCTL((cmd),(ioctl_trans_handler_t)do_ioctl32_ulong) | 
 | 38 | #define HANDLE_IOCTL(cmd,handler)	{ (cmd), (ioctl_trans_handler_t)(handler), NULL }, | 
 | 39 |  | 
 | 40 | struct ioctl_trans ioctl_start[] = { | 
 | 41 | /* architecture independent ioctls */ | 
 | 42 | #include <linux/compat_ioctl.h> | 
 | 43 | #define DECLARES | 
 | 44 | #include "../../../fs/compat_ioctl.c" | 
 | 45 |  | 
 | 46 | /* s390 only ioctls */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 47 | COMPATIBLE_IOCTL(DASDAPIVER) | 
 | 48 | COMPATIBLE_IOCTL(BIODASDDISABLE) | 
 | 49 | COMPATIBLE_IOCTL(BIODASDENABLE) | 
 | 50 | COMPATIBLE_IOCTL(BIODASDRSRV) | 
 | 51 | COMPATIBLE_IOCTL(BIODASDRLSE) | 
 | 52 | COMPATIBLE_IOCTL(BIODASDSLCK) | 
 | 53 | COMPATIBLE_IOCTL(BIODASDINFO) | 
 | 54 | COMPATIBLE_IOCTL(BIODASDINFO2) | 
 | 55 | COMPATIBLE_IOCTL(BIODASDFMT) | 
 | 56 | COMPATIBLE_IOCTL(BIODASDPRRST) | 
 | 57 | COMPATIBLE_IOCTL(BIODASDQUIESCE) | 
 | 58 | COMPATIBLE_IOCTL(BIODASDRESUME) | 
 | 59 | COMPATIBLE_IOCTL(BIODASDPRRD) | 
 | 60 | COMPATIBLE_IOCTL(BIODASDPSRD) | 
 | 61 | COMPATIBLE_IOCTL(BIODASDGATTR) | 
 | 62 | COMPATIBLE_IOCTL(BIODASDSATTR) | 
| Cornelia Huck | 4beb370 | 2005-05-01 08:58:59 -0700 | [diff] [blame] | 63 | COMPATIBLE_IOCTL(BIODASDCMFENABLE) | 
 | 64 | COMPATIBLE_IOCTL(BIODASDCMFDISABLE) | 
 | 65 | COMPATIBLE_IOCTL(BIODASDREADALLCMB) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 66 |  | 
| Richard Hitt | ed3cb6f | 2005-10-30 15:00:10 -0800 | [diff] [blame] | 67 | COMPATIBLE_IOCTL(TUBICMD) | 
 | 68 | COMPATIBLE_IOCTL(TUBOCMD) | 
 | 69 | COMPATIBLE_IOCTL(TUBGETI) | 
 | 70 | COMPATIBLE_IOCTL(TUBGETO) | 
 | 71 | COMPATIBLE_IOCTL(TUBSETMOD) | 
 | 72 | COMPATIBLE_IOCTL(TUBGETMOD) | 
 | 73 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 74 | COMPATIBLE_IOCTL(TAPE390_DISPLAY) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 75 |  | 
 | 76 | /* s390 doesn't need handlers here */ | 
 | 77 | COMPATIBLE_IOCTL(TIOCGSERIAL) | 
 | 78 | COMPATIBLE_IOCTL(TIOCSSERIAL) | 
 | 79 | }; | 
 | 80 |  | 
 | 81 | int ioctl_table_size = ARRAY_SIZE(ioctl_start); |