# DC_TouchRange

## C Specification

      #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. `startAddr` + `nBytes` is rounded up to the closest 32-byte boundary.
This function executes a `pld` command, but the specification of the ARM946E-S is such that even if it recognizes that `pld` command, it will do nothing. Therefore, this function doesn't actually do anything.
This function is maintained in order to preserve compatibility with older program codes.

## Internal Operation

Looks ahead with the `pld` command. This function divides the specified range into cache-line units and repeats its operation. Thus the amount of time it takes is proportional to the size of the range.

## 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.