# MI_CpuClear*

## C Specification

    #include <nitro/mi.h>

    void MI_CpuClear8( void* dest, u32 size);
    void MI_CpuClear16( void* dest, u32 size);
    void MI_CpuClear32( void* dest, u32 size);
    void MI_CpuClearFast( void* dest, u32 size);

## Description

This function uses the CPU to zero clear memory.

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

`MI_CpuClear16()` fills the memory with zeros in 16-bit units. You must 2-byte align the clear destination address. `MI_CpuClear32()` fills the memory with zeros in 32-bit units. You must 4-byte align the clear destination address. `MI_CpuClearFast()` fills with zeros at high speed in 32-byte units. You must 4-byte align the clear destination address.

## Internal Operation

This processes with the CPU only and does not use the DMA controller. It does not use a system call.

## Arguments

`dest` | The address of the clear destination
`size` | Clear size

## Return Values

None

## See Also

`MI_CpuCopy*, MI_CpuFill*, MI_CpuSend*, MI_DmaClear*`

## Revision History

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