[PATCH 23/25] cdrom: move ioctl32 code to drivers/cdrom/compat.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



All cdrom drivers use a subset of the same ioctl numbers, so
the 32 bit conversion handlers can be moved to a common place.

This patch simply uses the global cdrom_compat_ioctl function as
the .compat_ioctl block device operation for each of them.

Since I'm already touching pktcdvd, make that use its own
ctl compat_ioctl function as well.

CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
Signed-off-by: Arnd Bergmann <[email protected]>

Index: linux-cg/drivers/block/paride/pcd.c
===================================================================
--- linux-cg.orig/drivers/block/paride/pcd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/block/paride/pcd.c	2005-11-05 15:48:02.000000000 +0100
@@ -253,6 +253,7 @@
 	.open		= pcd_block_open,
 	.release	= pcd_block_release,
 	.ioctl		= pcd_block_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= pcd_block_media_changed,
 };
 
Index: linux-cg/drivers/block/paride/pd.c
===================================================================
--- linux-cg.orig/drivers/block/paride/pd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/block/paride/pd.c	2005-11-05 15:48:02.000000000 +0100
@@ -815,6 +815,7 @@
 	.open		= pd_open,
 	.release	= pd_release,
 	.ioctl		= pd_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= pd_check_media,
 	.revalidate_disk= pd_revalidate
 };
Index: linux-cg/drivers/block/pktcdvd.c
===================================================================
--- linux-cg.orig/drivers/block/pktcdvd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/block/pktcdvd.c	2005-11-05 16:07:02.000000000 +0100
@@ -47,6 +47,7 @@
 
 #include <linux/pktcdvd.h>
 #include <linux/config.h>
+#include <linux/compat.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
@@ -2465,6 +2466,7 @@
 	.open =			pkt_open,
 	.release =		pkt_close,
 	.ioctl =		pkt_ioctl,
+	.compat_ioctl =		cdrom_compat_ioctl,
 	.media_changed =	pkt_media_changed,
 };
 
@@ -2595,7 +2597,7 @@
 	ctrl_cmd->num_devices = MAX_WRITERS;
 }
 
-static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
+static int pkt_ctl_locked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
 	void __user *argp = (void __user *)arg;
 	struct pkt_ctrl_command ctrl_cmd;
@@ -2636,10 +2638,22 @@
 	return ret;
 }
 
+static long pkt_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	int ret;
+
+	lock_kernel();
+	arg = (unsigned long) compat_ptr(arg);
+	ret = pkt_ctl_locked_ioctl(file, cmd, arg);
+	unlock_kernel();
+
+	return ret;
+}
 
 static struct file_operations pkt_ctl_fops = {
-	.ioctl	 = pkt_ctl_ioctl,
-	.owner	 = THIS_MODULE,
+	.unlocked_ioctl	= pkt_ctl_ioctl,
+	.compat_ioctl	= pkt_ctl_ioctl,
+	.owner		= THIS_MODULE,
 };
 
 static struct miscdevice pkt_misc = {
Index: linux-cg/drivers/cdrom/Makefile
===================================================================
--- linux-cg.orig/drivers/cdrom/Makefile	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/Makefile	2005-11-05 15:48:02.000000000 +0100
@@ -21,3 +21,5 @@
 obj-$(CONFIG_SJCD)		+= sjcd.o
 obj-$(CONFIG_CDU535)		+= sonycd535.o
 obj-$(CONFIG_VIOCD)		+= viocd.o      cdrom.o
+
+obj-y				+= compat.o
Index: linux-cg/drivers/cdrom/aztcd.c
===================================================================
--- linux-cg.orig/drivers/cdrom/aztcd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/aztcd.c	2005-11-05 15:48:02.000000000 +0100
@@ -339,6 +339,7 @@
 	.open		= aztcd_open,
 	.release	= aztcd_release,
 	.ioctl		= aztcd_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= check_aztcd_media_change,
 };
 
Index: linux-cg/drivers/cdrom/cdu31a.c
===================================================================
--- linux-cg.orig/drivers/cdrom/cdu31a.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/cdu31a.c	2005-11-05 15:48:02.000000000 +0100
@@ -2953,6 +2953,7 @@
 	.open		= scd_block_open,
 	.release	= scd_block_release,
 	.ioctl		= scd_block_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= scd_block_media_changed,
 };
 
Index: linux-cg/drivers/cdrom/cm206.c
===================================================================
--- linux-cg.orig/drivers/cdrom/cm206.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/cm206.c	2005-11-05 15:48:02.000000000 +0100
@@ -1364,6 +1364,7 @@
 	.open		= cm206_block_open,
 	.release	= cm206_block_release,
 	.ioctl		= cm206_block_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= cm206_block_media_changed,
 };
 
Index: linux-cg/drivers/cdrom/compat.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ linux-cg/drivers/cdrom/compat.c	2005-11-05 15:48:02.000000000 +0100
@@ -0,0 +1,163 @@
+#include <linux/config.h>
+#include <linux/cdrom.h>
+#include <linux/compat.h>
+#include <linux/module.h>
+#include <asm/uaccess.h>
+
+#ifdef CONFIG_COMPAT
+static int cdrom_native_ioctl(struct file *file, unsigned int cmd,
+				unsigned long arg)
+{
+	struct inode *inode = file->f_mapping->host;
+	return blkdev_ioctl(inode, file, cmd, arg);
+}
+
+struct cdrom_read_audio32 {
+	union cdrom_addr	addr;
+	u8			addr_format;
+	compat_int_t		nframes;
+	compat_caddr_t		buf;
+};
+
+struct cdrom_generic_command32 {
+	unsigned char	cmd[CDROM_PACKET_SIZE];
+	compat_caddr_t	buffer;
+	compat_uint_t	buflen;
+	compat_int_t	stat;
+	compat_caddr_t	sense;
+	unsigned char	data_direction;
+	compat_int_t	quiet;
+	compat_int_t	timeout;
+	compat_caddr_t	reserved[1];
+};
+
+static int cdrom_do_read_audio(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	struct cdrom_read_audio __user *cdread_audio;
+	struct cdrom_read_audio32 __user *cdread_audio32;
+	__u32 data;
+	void __user *datap;
+
+	cdread_audio = compat_alloc_user_space(sizeof(*cdread_audio));
+	cdread_audio32 = compat_ptr(arg);
+
+	if (copy_in_user(&cdread_audio->addr,
+			 &cdread_audio32->addr,
+			 (sizeof(*cdread_audio32) -
+			  sizeof(compat_caddr_t))))
+	 	return -EFAULT;
+
+	if (get_user(data, &cdread_audio32->buf))
+		return -EFAULT;
+	datap = compat_ptr(data);
+	if (put_user(datap, &cdread_audio->buf))
+		return -EFAULT;
+
+	return cdrom_native_ioctl(file, cmd, (unsigned long) cdread_audio);
+}
+
+static int cdrom_do_generic_command(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	struct cdrom_generic_command __user *cgc;
+	struct cdrom_generic_command32 __user *cgc32;
+	u32 data;
+	unsigned char dir;
+	int itmp;
+
+	cgc = compat_alloc_user_space(sizeof(*cgc));
+	cgc32 = compat_ptr(arg);
+
+	if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
+	    get_user(data, &cgc32->buffer) ||
+	    put_user(compat_ptr(data), &cgc->buffer) ||
+	    copy_in_user(&cgc->buflen, &cgc32->buflen,
+			 (sizeof(unsigned int) + sizeof(int))) ||
+	    get_user(data, &cgc32->sense) ||
+	    put_user(compat_ptr(data), &cgc->sense) ||
+	    get_user(dir, &cgc32->data_direction) ||
+	    put_user(dir, &cgc->data_direction) ||
+	    get_user(itmp, &cgc32->quiet) ||
+	    put_user(itmp, &cgc->quiet) ||
+	    get_user(itmp, &cgc32->timeout) ||
+	    put_user(itmp, &cgc->timeout) ||
+	    get_user(data, &cgc32->reserved[0]) ||
+	    put_user(compat_ptr(data), &cgc->reserved[0]))
+		return -EFAULT;
+
+	return cdrom_native_ioctl(file, cmd, (unsigned long) cgc);
+}
+
+long cdrom_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	int err;
+
+	switch(cmd) {
+	case CDROMREADAUDIO:
+		err = cdrom_do_read_audio(file, cmd, arg);
+		break;
+
+	case CDROM_SEND_PACKET:
+		err = cdrom_do_generic_command(file, cmd, arg);
+		break;
+
+	case CDROMPAUSE:
+	case CDROMRESUME:
+	case CDROMPLAYMSF:
+	case CDROMPLAYTRKIND:
+	case CDROMREADTOCHDR:
+	case CDROMREADTOCENTRY:
+	case CDROMSTOP:
+	case CDROMSTART:
+	case CDROMEJECT:
+	case CDROMVOLCTRL:
+	case CDROMSUBCHNL:
+	case CDROMMULTISESSION:
+	case CDROM_GET_MCN:
+	case CDROMRESET:
+	case CDROMVOLREAD:
+	case CDROMSEEK:
+	case CDROMPLAYBLK:
+	case CDROMCLOSETRAY:
+	case CDROM_DISC_STATUS:
+	case CDROM_CHANGER_NSLOTS:
+	case CDROM_GET_CAPABILITY:
+/* Ignore cdrom.h about these next 5 ioctls, they absolutely do
+ * not take a struct cdrom_read, instead they take a struct cdrom_msf
+ * which is compatible.
+ */
+	case CDROMREADMODE2:
+	case CDROMREADMODE1:
+	case CDROMREADRAW:
+	case CDROMREADCOOKED:
+	case CDROMREADALL:
+/* DVD ioctls */
+	case DVD_READ_STRUCT:
+	case DVD_WRITE_STRUCT:
+	case DVD_AUTH:
+		arg = (unsigned long) compat_ptr(arg);
+
+/* these take an integer as their argument, not a pointer */
+	case CDROMEJECT_SW:
+	case CDROM_SET_OPTIONS:
+	case CDROM_CLEAR_OPTIONS:
+	case CDROM_SELECT_SPEED:
+	case CDROM_SELECT_DISC:
+	case CDROM_MEDIA_CHANGED:
+	case CDROM_DRIVE_STATUS:
+	case CDROM_LOCKDOOR:
+	case CDROM_DEBUG:
+		err = cdrom_native_ioctl(file, cmd, arg);
+		break;
+	default:
+		err = -ENOIOCTLCMD;
+	}
+	return err;
+}
+#else
+/* provide an empty operation that drivers can reference */
+long cdrom_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	return -ENOIOCTLCMD;
+}
+#endif
+EXPORT_SYMBOL_GPL(cdrom_compat_ioctl);
Index: linux-cg/drivers/cdrom/gscd.c
===================================================================
--- linux-cg.orig/drivers/cdrom/gscd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/gscd.c	2005-11-05 15:48:02.000000000 +0100
@@ -155,6 +155,7 @@
 	.open		= gscd_open,
 	.release	= gscd_release,
 	.ioctl		= gscd_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= check_gscd_med_chg,
 };
 
Index: linux-cg/drivers/cdrom/mcdx.c
===================================================================
--- linux-cg.orig/drivers/cdrom/mcdx.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/mcdx.c	2005-11-05 15:48:02.000000000 +0100
@@ -243,6 +243,7 @@
 	.open		= mcdx_block_open,
 	.release	= mcdx_block_release,
 	.ioctl		= mcdx_block_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= mcdx_block_media_changed,
 };
 
Index: linux-cg/drivers/cdrom/optcd.c
===================================================================
--- linux-cg.orig/drivers/cdrom/optcd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/optcd.c	2005-11-05 15:48:02.000000000 +0100
@@ -1993,6 +1993,7 @@
 	.open		= opt_open,
 	.release	= opt_release,
 	.ioctl		= opt_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= opt_media_change,
 };
 
Index: linux-cg/drivers/cdrom/sbpcd.c
===================================================================
--- linux-cg.orig/drivers/cdrom/sbpcd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/sbpcd.c	2005-11-05 15:48:02.000000000 +0100
@@ -5385,6 +5385,7 @@
 	.open		= sbpcd_block_open,
 	.release	= sbpcd_block_release,
 	.ioctl		= sbpcd_block_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= sbpcd_block_media_changed,
 };
 /*==========================================================================*/
Index: linux-cg/drivers/cdrom/sjcd.c
===================================================================
--- linux-cg.orig/drivers/cdrom/sjcd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/sjcd.c	2005-11-05 15:48:02.000000000 +0100
@@ -1646,6 +1646,7 @@
 	.open		= sjcd_open,
 	.release	= sjcd_release,
 	.ioctl		= sjcd_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= sjcd_disk_change,
 };
 
Index: linux-cg/drivers/cdrom/sonycd535.c
===================================================================
--- linux-cg.orig/drivers/cdrom/sonycd535.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/cdrom/sonycd535.c	2005-11-05 15:48:02.000000000 +0100
@@ -1,4 +1,5 @@
 /*
+	.compat_ioctl	= cdrom_compat_ioctl,
  * Sony CDU-535 interface device driver
  *
  * This is a modified version of the CDU-31A device driver (see below).
@@ -1433,6 +1434,7 @@
 	.open		= cdu_open,
 	.release	= cdu_release,
 	.ioctl		= cdu_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= cdu535_check_media_change,
 };
 
Index: linux-cg/drivers/ide/ide-cd.c
===================================================================
--- linux-cg.orig/drivers/ide/ide-cd.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/ide/ide-cd.c	2005-11-05 15:48:02.000000000 +0100
@@ -3421,6 +3421,7 @@
 	.open		= idecd_open,
 	.release	= idecd_release,
 	.ioctl		= idecd_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= idecd_media_changed,
 	.revalidate_disk= idecd_revalidate_disk
 };
Index: linux-cg/drivers/ide/ide-floppy.c
===================================================================
--- linux-cg.orig/drivers/ide/ide-floppy.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/ide/ide-floppy.c	2005-11-05 15:48:02.000000000 +0100
@@ -2122,6 +2122,7 @@
 	.open		= idefloppy_open,
 	.release	= idefloppy_release,
 	.ioctl		= idefloppy_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= idefloppy_media_changed,
 	.revalidate_disk= idefloppy_revalidate_disk
 };
Index: linux-cg/drivers/scsi/sr.c
===================================================================
--- linux-cg.orig/drivers/scsi/sr.c	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/drivers/scsi/sr.c	2005-11-05 15:48:02.000000000 +0100
@@ -510,6 +510,7 @@
 	.open		= sr_block_open,
 	.release	= sr_block_release,
 	.ioctl		= sr_block_ioctl,
+	.compat_ioctl	= cdrom_compat_ioctl,
 	.media_changed	= sr_block_media_changed,
 	/* 
 	 * No compat_ioctl for now because sr_block_ioctl never
Index: linux-cg/fs/compat_ioctl.c
===================================================================
--- linux-cg.orig/fs/compat_ioctl.c	2005-11-05 15:48:02.000000000 +0100
+++ linux-cg/fs/compat_ioctl.c	2005-11-05 16:43:51.000000000 +0100
@@ -228,109 +228,6 @@
 	return err ? -EFAULT: 0;
 }
 
-struct cdrom_read_audio32 {
-	union cdrom_addr	addr;
-	u8			addr_format;
-	compat_int_t		nframes;
-	compat_caddr_t		buf;
-};
-
-struct cdrom_generic_command32 {
-	unsigned char	cmd[CDROM_PACKET_SIZE];
-	compat_caddr_t	buffer;
-	compat_uint_t	buflen;
-	compat_int_t	stat;
-	compat_caddr_t	sense;
-	unsigned char	data_direction;
-	compat_int_t	quiet;
-	compat_int_t	timeout;
-	compat_caddr_t	reserved[1];
-};
-  
-static int cdrom_do_read_audio(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-	struct cdrom_read_audio __user *cdread_audio;
-	struct cdrom_read_audio32 __user *cdread_audio32;
-	__u32 data;
-	void __user *datap;
-
-	cdread_audio = compat_alloc_user_space(sizeof(*cdread_audio));
-	cdread_audio32 = compat_ptr(arg);
-
-	if (copy_in_user(&cdread_audio->addr,
-			 &cdread_audio32->addr,
-			 (sizeof(*cdread_audio32) -
-			  sizeof(compat_caddr_t))))
-	 	return -EFAULT;
-
-	if (get_user(data, &cdread_audio32->buf))
-		return -EFAULT;
-	datap = compat_ptr(data);
-	if (put_user(datap, &cdread_audio->buf))
-		return -EFAULT;
-
-	return sys_ioctl(fd, cmd, (unsigned long) cdread_audio);
-}
-
-static int cdrom_do_generic_command(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-	struct cdrom_generic_command __user *cgc;
-	struct cdrom_generic_command32 __user *cgc32;
-	u32 data;
-	unsigned char dir;
-	int itmp;
-
-	cgc = compat_alloc_user_space(sizeof(*cgc));
-	cgc32 = compat_ptr(arg);
-
-	if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
-	    get_user(data, &cgc32->buffer) ||
-	    put_user(compat_ptr(data), &cgc->buffer) ||
-	    copy_in_user(&cgc->buflen, &cgc32->buflen,
-			 (sizeof(unsigned int) + sizeof(int))) ||
-	    get_user(data, &cgc32->sense) ||
-	    put_user(compat_ptr(data), &cgc->sense) ||
-	    get_user(dir, &cgc32->data_direction) ||
-	    put_user(dir, &cgc->data_direction) ||
-	    get_user(itmp, &cgc32->quiet) ||
-	    put_user(itmp, &cgc->quiet) ||
-	    get_user(itmp, &cgc32->timeout) ||
-	    put_user(itmp, &cgc->timeout) ||
-	    get_user(data, &cgc32->reserved[0]) ||
-	    put_user(compat_ptr(data), &cgc->reserved[0]))
-		return -EFAULT;
-
-	return sys_ioctl(fd, cmd, (unsigned long) cgc);
-}
-
-static int cdrom_ioctl_trans(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-	int err;
-
-	switch(cmd) {
-	case CDROMREADAUDIO:
-		err = cdrom_do_read_audio(fd, cmd, arg);
-		break;
-
-	case CDROM_SEND_PACKET:
-		err = cdrom_do_generic_command(fd, cmd, arg);
-		break;
-
-	default:
-		do {
-			static int count;
-			if (++count <= 20)
-				printk("cdrom_ioctl: Unknown cmd fd(%d) "
-				       "cmd(%08x) arg(%08x)\n",
-				       (int)fd, (unsigned int)cmd, (unsigned int)arg);
-		} while(0);
-		err = -EINVAL;
-		break;
-	};
-
-	return err;
-}
-
 static __attribute_used__ int 
 ret_einval(unsigned int fd, unsigned int cmd, unsigned long arg)
 {
@@ -362,7 +259,5 @@
 #ifdef DECLARES
 HANDLE_IOCTL(MTIOCGET32, mt_ioctl_trans)
 HANDLE_IOCTL(MTIOCPOS32, mt_ioctl_trans)
-HANDLE_IOCTL(CDROMREADAUDIO, cdrom_ioctl_trans)
-HANDLE_IOCTL(CDROM_SEND_PACKET, cdrom_ioctl_trans)
 #undef DECLARES
 #endif
Index: linux-cg/include/linux/cdrom.h
===================================================================
--- linux-cg.orig/include/linux/cdrom.h	2005-11-05 15:46:46.000000000 +0100
+++ linux-cg/include/linux/cdrom.h	2005-11-05 15:48:02.000000000 +0100
@@ -991,6 +991,8 @@
 extern int cdrom_release(struct cdrom_device_info *cdi, struct file *fp);
 extern int cdrom_ioctl(struct file *file, struct cdrom_device_info *cdi,
 		struct inode *ip, unsigned int cmd, unsigned long arg);
+extern long cdrom_compat_ioctl(struct file *file, unsigned int cmd,
+				unsigned long arg);
 extern int cdrom_media_changed(struct cdrom_device_info *);
 
 extern int register_cdrom(struct cdrom_device_info *cdi);
Index: linux-cg/include/linux/compat_ioctl.h
===================================================================
--- linux-cg.orig/include/linux/compat_ioctl.h	2005-11-05 15:48:02.000000000 +0100
+++ linux-cg/include/linux/compat_ioctl.h	2005-11-05 16:43:51.000000000 +0100
@@ -158,52 +158,6 @@
 COMPATIBLE_IOCTL(PPGETPHASE)
 COMPATIBLE_IOCTL(PPGETFLAGS)
 COMPATIBLE_IOCTL(PPSETFLAGS)
-/* CDROM stuff */
-COMPATIBLE_IOCTL(CDROMPAUSE)
-COMPATIBLE_IOCTL(CDROMRESUME)
-COMPATIBLE_IOCTL(CDROMPLAYMSF)
-COMPATIBLE_IOCTL(CDROMPLAYTRKIND)
-COMPATIBLE_IOCTL(CDROMREADTOCHDR)
-COMPATIBLE_IOCTL(CDROMREADTOCENTRY)
-COMPATIBLE_IOCTL(CDROMSTOP)
-COMPATIBLE_IOCTL(CDROMSTART)
-COMPATIBLE_IOCTL(CDROMEJECT)
-COMPATIBLE_IOCTL(CDROMVOLCTRL)
-COMPATIBLE_IOCTL(CDROMSUBCHNL)
-ULONG_IOCTL(CDROMEJECT_SW)
-COMPATIBLE_IOCTL(CDROMMULTISESSION)
-COMPATIBLE_IOCTL(CDROM_GET_MCN)
-COMPATIBLE_IOCTL(CDROMRESET)
-COMPATIBLE_IOCTL(CDROMVOLREAD)
-COMPATIBLE_IOCTL(CDROMSEEK)
-COMPATIBLE_IOCTL(CDROMPLAYBLK)
-COMPATIBLE_IOCTL(CDROMCLOSETRAY)
-ULONG_IOCTL(CDROM_SET_OPTIONS)
-ULONG_IOCTL(CDROM_CLEAR_OPTIONS)
-ULONG_IOCTL(CDROM_SELECT_SPEED)
-ULONG_IOCTL(CDROM_SELECT_DISC)
-ULONG_IOCTL(CDROM_MEDIA_CHANGED)
-ULONG_IOCTL(CDROM_DRIVE_STATUS)
-COMPATIBLE_IOCTL(CDROM_DISC_STATUS)
-COMPATIBLE_IOCTL(CDROM_CHANGER_NSLOTS)
-ULONG_IOCTL(CDROM_LOCKDOOR)
-ULONG_IOCTL(CDROM_DEBUG)
-COMPATIBLE_IOCTL(CDROM_GET_CAPABILITY)
-/* Ignore cdrom.h about these next 5 ioctls, they absolutely do
- * not take a struct cdrom_read, instead they take a struct cdrom_msf
- * which is compatible.
- */
-COMPATIBLE_IOCTL(CDROMREADMODE2)
-COMPATIBLE_IOCTL(CDROMREADMODE1)
-COMPATIBLE_IOCTL(CDROMREADRAW)
-COMPATIBLE_IOCTL(CDROMREADCOOKED)
-COMPATIBLE_IOCTL(CDROMREADALL)
-/* DVD ioctls */
-COMPATIBLE_IOCTL(DVD_READ_STRUCT)
-COMPATIBLE_IOCTL(DVD_WRITE_STRUCT)
-COMPATIBLE_IOCTL(DVD_AUTH)
-/* pktcdvd */
-COMPATIBLE_IOCTL(PACKET_CTRL_CMD)
 /* Big A */
 /* sparc only */
 /* Big Q for sound/OSS */

--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux