Inconsistency in bus_dma manpage?

John Baldwin jhb at freebsd.org
Mon Feb 12 19:33:52 UTC 2007


On Sunday 11 February 2007 16:07, Jason Harmening wrote:
> In the busdma_sync_op_t section of the bus_dma manpage, the sync operations 
> are described as follows:
> 
>               BUS_DMASYNC_PREREAD    Perform any synchronization required
>                                      prior to an update of host memory by 
the
>                                      DMA read operation.
> 
>               BUS_DMASYNC_PREWRITE   Perform any synchronization required
>                                      after an update of host memory by the 
CPU
>                                      and prior to DMA write operations.
> 
>               BUS_DMASYNC_POSTREAD   Perform any synchronization required
>                                      after DMA read operations and prior to
>                                      CPU access to host memory.
> 
>               BUS_DMASYNC_POSTWRITE  Perform any synchronization required
>                                      after DMA write operations.
> 
> Makes sense...But in the section describing bus_dmamap_load, the following 
> example is given:
> 
> 	      For example,
>               the CPU might be used to setup the contents of a buffer that 
is
>               to be DMA'ed into a device.  To ensure that the data are 
visible
>               via the device's mapping of that memory, the buffer must be
>               loaded and a dma sync operation of BUS_DMASYNC_PREREAD must be
>               performed.
> 
> 
> I believe the example is incorrect--it's actually describing the case where 
> BUS_DMASYNC_PREWRITE would be necessary.

This is fixed in at least HEAD as of several months ago.  Which OS release are 
you on?  Hmm, I've gone ahead and merged the updates to RELENG_6, but 6.2 and
earlier are going to have the wrong text.

-- 
John Baldwin



More information about the freebsd-doc mailing list