From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45195) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z9Mx7-00061H-IH for qemu-devel@nongnu.org; Sun, 28 Jun 2015 20:29:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z9Mx6-0001RI-Hx for qemu-devel@nongnu.org; Sun, 28 Jun 2015 20:29:37 -0400 Message-ID: <55909167.8090803@redhat.com> Date: Mon, 29 Jun 2015 02:29:27 +0200 From: Laurent Vivier MIME-Version: 1.0 References: <3B3C7431-1003-4AAA-90AF-0E1A154DFBE2@gmail.com> <5589A026.5020800@redhat.com> <455CF92B-58FA-446D-9EB0-42661C23B739@gmail.com> <87pp4kxos3.fsf@blackfin.pond.sub.org> <7B989F99-B95C-4D53-AA2D-29B87634D2BB@gmail.com> <558C22BD.1020404@redhat.com> <558C2852.3050102@redhat.com> <47B5E901-9CCD-4737-A5F2-B790EBEF941A@gmail.com> <02818C70-4409-48F8-8776-0AB917B5A39F@gmail.com> In-Reply-To: <02818C70-4409-48F8-8776-0AB917B5A39F@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] block.c: fix real cdrom detection List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Programmingkid , Peter Maydell Cc: Kevin Wolf , Paolo Bonzini , Markus Armbruster , Qemu-block , qemu-devel qemu-devel Hi, On 29/06/2015 01:43, Programmingkid wrote: > > On Jun 25, 2015, at 2:01 PM, Peter Maydell wrote: > >> On 25 June 2015 at 18:56, Programmingkid >> wrote: >>> Nice to hear from you again Laurent. The only way a solution in >>> hdev_open() would work is if it could prevent >>> find_image_format() from executing. Otherwise find_image_format() >>> would just quit QEMU with an error. >> >> The question you should be asking is "what is Linux doing for raw >> CDROM devices that is different, such that it works there but >> doesn't work on OSX?". >> >> It would also be helpful to know which is the case that doesn't >> work. Does QEMU fail in all cases, or only if the cdrom drive is >> empty, or only if there's a disk in the drive? > > QEMU fails if the cdrom is specified "-cdrom /dev/cdrom", and there > is no cd in the drive. > > QEMU also fails with a real cdrom in the drive. > >> >> My initial suspicion is that we need OSX support in raw-posix.c for >> handling the host CDROM specially -- note that Linux and FreeBSD >> register a bdrv_host_cdrom with an is_inserted function. > > The is_inserted function wouldn't make a difference. In fact, if your patch fixes the problem, the is_inserted with no cdrom should too: with your " strcmp("/dev/cdrom", filename) == 0 ", you force the selection of bdrv_raw (which is what to do). without your patch, if "bdrv_is_inserted()" was implemented and no cdrom in the drive " !bdrv_is_inserted(bs) " should also select bdrv_raw. It appears also that bdrv_host_cdrom is not registered in bdrv_file_init(). I think this is the missing part to have a host cdrom support on MacOS X. Laurent