qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5] block/raw-posix.c: Fixes raw_getlength() on


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH v5] block/raw-posix.c: Fixes raw_getlength() on Mac OS X so that it reports the correct length of a real CD
Date: Tue, 13 Jan 2015 18:34:28 +0000

On 13 January 2015 at 18:26, Programmingkid <address@hidden> wrote:
> Allows for using real cdrom disc in QEMU under Mac OS X.
>
> This command was used to see if this patch worked:
> ./qemu-system-i386 -drive if=none,id=drive0,file=/dev/null,format=raw
>
> Signed-off-by: John Arbuckle <address@hidden>
>
> ---
> Replaced -errno with 0 for ioctl() failure return value.
> "make check" now passes with this patch.
>
>
>  block/raw-posix.c |   18 +++++++++++++++++-
>  configure         |    2 +-
>  2 files changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index e51293a..16fa0a4 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -1312,7 +1312,23 @@ again:
>          if (size == 0)
>  #endif
>  #if defined(__APPLE__) && defined(__MACH__)
> -        size = LLONG_MAX;
> +    {
> +        uint64_t sectors = 0;
> +        uint32_t sector_size = 0;
> +
> +        /* Query the number of sectors on the disk */
> +        ret = ioctl(fd, DKIOCGETBLOCKCOUNT, &sectors);
> +        if (ret == -1) {
> +            return 0;

We should be falling back to lseek, not returning 0...

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]