correct use of bus_dmamap_sync
Scott Long
scottl at samsco.org
Thu Oct 27 06:54:43 PDT 2005
Dinesh Nair wrote:
>
> On 10/27/05 04:16 Scott Long said the following:
>
>>>> an example would be using
>>>> (BUS_DMASYNC_POSTREAD|BUS_DMASYNC_PREWRITE) which
>>>> would be 0x03 in freebsd 4.x and 0x06 in freebsd 5.x. the gotcha is
>>>> that
>>>> 0x03 in freebsd 4.x is BUS_DMASYNC_POSTWRITE. so therefore,
>>>> BUS_DMASYNC_POSTREAD|BUS_DMASYNC_PREWRITE will be
>>>> BUS_DMASYNC_POSTWRITE in
>>>> 4.x which in the syscall is actually a no op.
>>>
>>>
>>> Yes, that is fugly. Just don't use the | versions for now I would
>>> guess.
>>
>>
>> Trying to maintain source compatibility between 4.x and 5.x/6.x will
>> make you encounter a whole lot more problems than just this.
>
>
> could you elaborate on what busdma related problems there'd be, between
> 4.x and 5.x/6.x ? do, for example, the inner workings of the bus_dma*
> syscalls work the same on both ?
>
I was speaking about driver code in general. For busdma specifically,
the only difference is the extra arguments to bus_dma_tag_create().
Scott
More information about the freebsd-hackers
mailing list