DCFlushRangeNoSync

Syntax

#include <revolution/os.h>

void DCFlushRangeNoSync(void* startAddr, u32 nBytes);

Arguments

startAddr Effective address (not the physical address) .
nBytes Size of region to be flushed.

Return Values

None.

Description

Flushes a specified range. The cache data block hit in the data cache for the specified range is flushed to main memory and invalidated. The startAddr argument will be rounded down to the closest 32-byte boundary, while the end address (startAddr + nBytes) will be rounded up to the closest 32-byte boundary.

Be aware that even if the cache is disabled or frozen (via the DCFreeze function), this command will still execute.

This routine does not perform a sync to ensure that the specified range has been flushed to memory. In other words, the cache blocks are sent to the bus interface unit to be stored in main memory; but by the time this function returns, the blocks are not guaranteed to have been written to memory. If your code must know that the data has been stored in main memory, invoke the PPCSync function on the memory to flush after calling the DCFlushRangeNoSync function. Be aware that DMA transfers into and out of the locked cache are not affected by the PPCSync function.

See Also

Cache Functions, DCInvalidateRange, DCFlushRange, DCStoreRange, DCStoreRangeNoSync, PPCSync

Revision History

2006/03/01 Initial version.


CONFIDENTIAL