MI_CpuFind*

構文

#include <nitro/mi.h>

void* MI_CpuFind8( const void* src, u8 data, u32 size );
void* MI_CpuFind16( const void* src, u16 data, u32 size );
void* MI_CpuFind32( const void* src, u32 data, u32 size );

引数

src 探索元アドレス
data 探索対象のデータ
size 探索サイズ

返り値

探索対象のデータが見つかった場合はその場所へのポインタを返します。 見つからなかった場合は NULL を返します。

説明

CPUでメモリから指定のデータを探します。

MI_CpuFind8() は探索元アドレスから判断してできるだけ効率的なメモリアクセスを選択し、適宜 16ビットおよび 32ビット単位でメモリから指定のデータを探索します。探索元アドレスのアラインメントを考慮する必要はありません。

MI_CpuFind16() は 16ビット単位でメモリから指定のデータを探索します。探索元アドレスは2バイトアラインメントする必要があります。

MI_CpuFind32() は 32ビット単位でメモリから指定のデータを探索します。探索元アドレスは4バイトアラインメントする必要があります。

内部動作

DMAコントローラは使用せず、CPUだけで処理します。システムコールは使用しません。
MI_CpuFind8に関しても16/32ビット単位で読み取りを行いますので、直接VRAMへアクセスする場合でも問題は発生しません。

参照

履歴

2007/12/10 初版