On Jul 2, 2015, at 10:33 AM, Laurent Vivier wrote:
>
>
> On 02/07/2015 16:20, Paolo Bonzini wrote:
>>
>>
>> On 02/07/2015 16:18, Laurent Vivier wrote:
>>>>> I'm okay with doing the simple thing, but it needs a comment for
>>>>> non-BSDers.
>>> So, what we have to do, in our case, for MacOS X cdrom, is something like:
>>>
>>> ... GetBSDPath ...
>>> ...
>>> if (flags & BDRV_O_NOCACHE) {
>>> strcat(bsdPath, "r");
>>> }
>>> ...
>>>
>>> ?
>>
>> Well, what to do with Mac OS X CD-ROM is another story... Raw access
>> "seems not do work well" according to John, so we may have a comment
>> there explaining why we're not adding the "r".
>
> I think it doesn't work well because they need to be aligned, and
> NOCACHE implies that (with BDRV_O_NOCACHE code will be self explicit :) )
>
> raw_open_common()
>
> if ((bs->open_flags & BDRV_O_NOCACHE) != 0) {
> s->needs_alignment = true;
> }
>
> and needs_alignment allows to probe alignment (raw_probe_alignment())
Thank you very much for this. Raw cdrom access now works with this code. I
just had to modify it so it just sets s->needs_alignment to true without
checking
the if condition. The if condition didn't work.