1 |*****************************************************************************
5 | __AROS_LH3(APTR
, CachePreDMA
,
8 | __AROS_LA(APTR
, address
, A0
),
9 | __AROS_LA(ULONG
*, length
, A1
),
10 | __AROS_LA(ULONG
, flags
, D0
),
13 | struct ExecBase
*, SysBase
, 127, Exec
)
16 | Do everything necessary to make CPU caches aware that a DMA will happen
.
17 | Virtual memory systems will make it possible that your memory isn
't at
18 | one block and not at the address you thought. This function gives you
19 | all the information you need to split the DMA request up and to convert
20 | virtual to physical addresses.
23 | address - Virtual address of memory affected by the DMA
24 | *length - Number of bytes affected
25 | flags - DMA_Continue - This is a call to continue a request that
27 | DMA_ReadFromRAM - Indicate that the DMA goes from RAM
28 | to the device. Set this bit in bot calls.
31 | The physical address in memory.
32 | *length contains the number of contiguous bytes in physical memory.
35 | DMA must follow a call to CachePreDMA() and must be followed
36 | by a call to CachePostDMA().
49 |******************************************************************************
51 | Simple 68000s have no chaches
52 .globl _Exec_CachePreDMA