correct use of bus_dmamap_sync

Dinesh Nair dinesh at alphaque.com
Wed Oct 26 22:48:30 PDT 2005


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 ?

-- 
Regards,                           /\_/\   "All dogs go to heaven."
dinesh at alphaque.com                (0 0)    http://www.alphaque.com/
+==========================----oOO--(_)--OOo----==========================+
| for a in past present future; do                                        |
|   for b in clients employers associates relatives neighbours pets; do   |
|   echo "The opinions here in no way reflect the opinions of my $a $b."  |
| done; done                                                              |
+=========================================================================+


More information about the freebsd-hackers mailing list