# MI_CpuFill*

## C Specification

  `#include <nitro/mi.h>`
  `void MI_CpuFill8( void* dest, u8 data, u32 size );`
  `void MI_CpuFill16( void* dest, u16 data, u32 size );`
  `void MI_CpuFill32( void* dest, u32 data, u32 size );`
  `void MI_CpuFillFast( void* dest, u32 data, u32 size );`

## Arguments

dest | The transfer destination address.
data | The data that will be transferred
size | Transfer size

## Return Values

None.

## Description

This function uses the CPU to fill memory with specified data.

`MI_CpuFill8()` selects the most efficient memory access based on the transfer destination address, and appropriately fills the memory with the specified data in 16-bit and 32-bit units. The alignment of the transfer destination address does not need to be considered.

`MI_CpuFill16()` fills the memory with specified data in 16-bit units. The transfer destination address must be 2-byte aligned.

`MI_CpuFill32()` fills the memory with specified data in 32-bit units. The transfer destination address must be 4-byte aligned.

`MI_CpuFillFast()` quickly fills the memory with the specified data in 32-byte units. The transfer destination address must be 4-byte aligned. The transfer size is an integral multiple of 4 bytes. It does not have to be an integral multiple of 32 bytes.

## Internal Operation

This processes with the CPU only and does not use the DMA controller. It does not use a system call. `MI_CpuFill8` copies in units of 16/32 bits and thus, accessing VRAM directly will not cause problems.

## See Also

`MI_CpuCopy*, MI_CpuClear*, MI_CpuSend*, MI_DmaFill*`

## Revision History

2004/04/29 Added description of `MI_CpuFill8`.
03/29/2004 Noted that a system call is not used.
12/01/2003 Initial version

CONFIDENTIAL