[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   NAME
        CachePostDMA - Take actions after to hardware DMA  (V37)

   SYNOPSIS
        CachePostDMA(vaddress,&length,flags)
                     a0       a1      d0

        CachePostDMA(APTR,long *,ulong);

   FUNCTION
        Take all appropriate steps after Direct Memory Access (DMA).  This
        function is primarily intended for writers of DMA device drivers.  The
        action will depend on the CPU type installed, caching modes, and the
        state of any Memory Management unit (mmu) activity.

        As implemented
                68000 - Do nothing
                68010 - Do nothing
                68020 - Do nothing
                68030 - flush the data cache
                68040 - flush matching areas of the data cache
                ????? - External cache boards, Virtual Memory Systems, or
                        future hardware may patch this vector to best emulate
                        the intended behavior.
                        With a Bus-Snooping CPU, this function my end up
                        doing nothing.

   INPUTS
        address - Same as initially passed to cachepredma
        length  - Same as initially passed to cachepredma
        flags   - Values:
                        DMA_NoModify - If the area was not modified (and
                        thus there is no reason to flush the cache) set
                        this bit.

                        DMA_ReadFromRAM - Indicates that this DMA is a
                        read from RAM to the DMA device (ie - a write
                        to the hard drive)  This flag is not required
                        but if used must match in both the PreDMA and
                        PostDMA calls.  This flag *should* be used to
                        help the system provide the best performance.
                        This flag is safe in all versions of CachePostDMA()

   SEE ALSO
        exec/execbase.i, cachepredma(), cacheclearu(), cachecleare()