# DC_TouchRange

## Syntax

      #include <nitro/os.h>

      void DC_TouchRange( const void* startAddr, u32 nBytes );

## Arguments

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

## Return Values

None.

## Description

Instructs the CPU to pre-load the data in the specified memory region into data 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

This function executes a `pld` instruction, but the ARM946E-S specification dictates that even if it recognizes the `pld` instruction, it will do nothing. Therefore, this function does not actually do anything. This function is maintained to preserve compatibility with old program code.

## Internal Operation

Looks ahead with the `pld` command. 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

`DC_LockdownRange
`

## Revision History

2005/12/22 Added a description that the `pld` command does nothing.
2005/11/14 Changed the `startAddr` type to const `void*`.
2005/04/19 Added a description that the amount of time required is proportional to the range size.
2003/12/22 Initial version.

CONFIDENTIAL