# IC_InvalidateRange

## Syntax

      #include <nitro/os.h>

      void IC_InvalidateRange( void* startAddr, u32 nBytes );

## Arguments

startAddr | Lowest address in the region to be invalidated
nBytes | Number of bytes of the region to be invalidated

## Return Values

None.

## Description

Invalidates the instruction code of the specified region in the instruction cache.

startAddr is rounded down to the closest 32-byte boundary. The sum of `startAddr` plus `nBytes` is rounded up to the closest 32-byte boundary.

Note

The official documentation for the ARM processor sometimes describes Flush as the operation that invalidates the cache. However, this SDK follows the conventions of the Nintendo GameCube and Nintendo64 by using Invalidate for invalidation.

## Internal Operation

Operates register 7 of the system control coprocessor.

This function divides the specified region into cache-line units and repeats its operation over and over. Thus the amount of time it takes is proportional to the size of the region.

## See Also

`IC_InvalidateAll`
`DC_InvalidateAll`
`DC_InvalidateRange`
`DC_StoreAll`
`DC_StoreRange`
`DC_FlushAll`
`DC_FlushRange`

## Revision History

2005/04/19 Added note explaining that processing time is proportional to the size of the range.
2003/12/22 Initial version.

CONFIDENTIAL