# MI_CpuPipe*

## Syntax

  `#include <nitro/mi.h>`
  `void MI_CpuPipe32( volatile const void* src,`
  `volatile void* dest,`
  `u32 size );`

  `void MI_CpuPipe16( volatile const void* src,`
  `volatile void* dest,`
  `u32 size );`

## Arguments

src | The transfer source address.
dest | The transfer destination address.
size | Transfer size.

## Return Values

None.

## Description

Sends data from the same address to the same address using the CPU.
Repeatedly reads, writes, and sends data without changing the source or destination addresses for the transfer.

`MI_CpuPipe16()` transfers in 16-bit units. Both the transfer source address and the transfer destination address must be 2-byte aligned.

`MI_CpuPipe32()` transfers in 32-bit units. Both the transfer source address and the transfer destination address must be 4-byte aligned.

## Internal Operation

Processing is done by the CPU only and does not use the DMA controller. System calls are not used.

## See Also

`MI_CpuCopy*, MI_CPUFill*, MI_CpuClear*, MI_CpuSend*, MI_CpuRecv*, MI_DmaPipe*, MI_NDmaPipe*
`

## Revision History

2007/10/25 Initial version.

CONFIDENTIAL