(C) 1998 AROS - The Amiga Research OS


NAME
#include <proto/exec.h>

void CacheClearE (address , length , caches)

LOCATION
In SysBase at offset 107

SYNOPSIS
APTR address
ULONG length
ULONG caches

FUNCTION
Flush the contents of the CPU instruction or data caches. If some of the cache contains dirty data, push it to memory first.

For most systems DMA will not effect processor caches. If *any* external (non-processor) event changes system memory, you MUST clear the cache. For example:

DMA Code relocation to run at a different address Building jump tables Loading code from disk

INPUTS
address
Address to start the operation. This address may be rounded DOWN due to hardware granularity.
length
Length of the memory to flush. This will be rounded up, of $FFFFFFFF to indicate that all addresses should be cleared.
caches
Bit flags to indicate which caches should be cleared

CACRF_ClearI
Clear the instruction cache
CACRF_ClearD
Clear the data cache

All other bits are reserved.

RESULT
The caches will be flushed.

EXAMPLE

SEE ALSO
CacheClearE(), CacheControl()

NOTES
It is possible that on some systems the entire cache will be even if this was not the specific request.

BUGS

INTERNALS
This is a rather CPU dependant function. You should replace it in your $(KERNEL).

HISTORY
16.04.1999 iaint
Turned off debugging
23.02.1999 digulla
No need for printing the warning at runtime when there is a #warning in the code.
23.10.1998 hkiel
Changes for use with aros_print_not_implemented() macro
20.10.1998 hkiel
Amiga Research OS
31.08.1998 hkiel
Added #warning for functions which are TODO
05.08.1997 iaint
Kernel Changes - These are mostly functions which are normally implemented by the kernel, but might not be.