From owner-freebsd-hackers Wed Dec 1 23:23: 1 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from oskar.dev.nanoteq.co.za (oskar.dev.nanoteq.co.za [196.7.114.5]) by hub.freebsd.org (Postfix) with ESMTP id 9171714C81; Wed, 1 Dec 1999 23:22:29 -0800 (PST) (envelope-from rbezuide@oskar.dev.nanoteq.co.za) Received: (from rbezuide@localhost) by oskar.dev.nanoteq.co.za (8.9.3/8.9.0) id JAA02892; Thu, 2 Dec 1999 09:19:13 +0200 (SAT) From: Reinier Bezuidenhout Message-Id: <199912020719.JAA02892@oskar.dev.nanoteq.co.za> Subject: Re: Linux ioctl not implemented error In-Reply-To: from Alfred Perlstein at "Dec 1, 99 12:08:41 pm" To: bright@wintelcom.net (Alfred Perlstein) Date: Thu, 2 Dec 1999 09:19:13 +0200 (SAT) Cc: wilko@yedi.iaf.nl, groudier@club-internet.fr, FreeBSD-hackers@FreeBSD.ORG, marcel@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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