Date: Thu, 2 Dec 1999 09:19:13 +0200 (SAT) From: Reinier Bezuidenhout <rbezuide@oskar.dev.nanoteq.co.za> To: bright@wintelcom.net (Alfred Perlstein) Cc: wilko@yedi.iaf.nl, groudier@club-internet.fr, FreeBSD-hackers@FreeBSD.ORG, marcel@FreeBSD.ORG Subject: Re: Linux ioctl not implemented error Message-ID: <199912020719.JAA02892@oskar.dev.nanoteq.co.za> In-Reply-To: <Pine.BSF.4.21.9912011156200.4557-100000@fw.wintelcom.net> from Alfred Perlstein at "Dec 1, 99 12:08:41 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Hi ... > > > > to do? > > > > > > CDROMVOLREAD that you want to map to CDIOGETVOL. That should read CDIOCGETVOL :) > try this: > > Index: linux_ioctl.c > =================================================================== > RCS file: /home/ncvs/src/sys/i386/linux/linux_ioctl.c,v > retrieving revision 1.47 > diff -u -u -r1.47 linux_ioctl.c > --- linux_ioctl.c 1999/11/29 23:03:34 1.47 > +++ linux_ioctl.c 1999/12/01 23:46:22 > @@ -1273,6 +1273,11 @@ > return error; > } > > + case LINUX_CDROMVOLREAD: { > + args->arg = CDIOGETVOL; > + return (ioctl(p, (struct ioctl_args *)args)); > + } > + > case LINUX_OSS_GETVERSION: { > int version; > > I've made a change that removed the complaint from vmware before Vladimar fixed it in the kernel module. It is the implementation of LINUX_CDROMVOLREAD to fit in with CDIOCGETVOL which has two different structures. Marcel please review this :) Index: linux_ioctl.c =================================================================== RCS file: /home/freebsd-cvs/src/sys/i386/linux/linux_ioctl.c,v retrieving revision 1.47 diff -c -r1.47 linux_ioctl.c *** linux_ioctl.c 1999/11/29 23:03:34 1.47 --- linux_ioctl.c 1999/12/02 07:15:29 *************** *** 473,478 **** --- 473,486 ---- u_char cdte_datamode; }; + struct linux_cdrom_volctrl + { + u_char channel0; + u_char channel1; + u_char channel2; + u_char channel3; + }; + struct linux_cdrom_subchnl { u_char cdsc_format; *************** *** 1232,1237 **** --- 1240,1261 ---- bsd_to_linux_msf_lba(irtse.address_format, &irtse.entry.addr, <e.cdte_addr); copyout((caddr_t)<e, (caddr_t)args->arg, sizeof(lte)); + } + return error; + } + + case LINUX_CDROMVOLREAD: { + struct linux_cdrom_volctrl lvol, *lvolp = + (struct linux_cdrom_volctrl *)args->arg; + struct ioc_vol bsd_vol; + error = fo_ioctl(fp, CDIOCGETVOL, (caddr_t)&bsd_vol, p); + if (!error) { + lvol = *lvolp; + lvol.channel0 = bsd_vol.vol[0]; + lvol.channel1 = bsd_vol.vol[1]; + lvol.channel2 = bsd_vol.vol[2]; + lvol.channel3 = bsd_vol.vol[3]; + copyout((caddr_t)&lvol, (caddr_t)args->arg, sizeof(lvol)); } return error; } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912020719.JAA02892>