SVC_CpuCopy*

構文

#include <iris/os/systemCall.h>
SVC_CpuCopy( srcp, destp, size, bit );
SVC_CpuCopyArray( srcp, destp, bit );
SVC_CpuCopyFast( srcp, destp, size );
SVC_CpuCopyArrayFast( srcp, destp );

(これらはマクロです)

引数

srcp ソースアドレス
destp デスティネーションアドレス
size 転送バイト数
bit 転送ビット幅(16 または 32)

返り値

なし。

説明

CPU でメモリコピーを行います。
これらはマクロなので、srcp, destp はポインタであれば型は制限されません。size は u32 です。bit は 16 か 32 の即値のみが指定できます。

SVC_CpuCopy() はsrcp で示されるアドレスから size バイトのデータを destp で示されるアドレスにコピーします。srcp, destp は 転送ビットが16の場合は2バイト境界に、32の場合は4バイト境界に合わせる必要があります。

SVC_CpuCopyArray() は、sizeof( srcp ) を転送サイズとする SVC_CpuCopy() です。つまり SVC_CpuCopy( srcp, destp, sizeof(srcp), bit ) と同じです。

SVC_CpuCopyFast() は srcp で示されるアドレスから size バイトのデータを destp で示されるアドレスに高速にコピーします。コピー単位は32バイトですので、サイズは32の倍数とする必要があります。srcp, destp は 4バイト境界に合わせる必要があります。

SVC_CpuCopyArrayFast() は sizeof( srcp )を転送サイズとする SVC_CpuCopyFast() です。つまり SVC_CpuCopyFast( srcp, destp, sizeof(srcp) ) と同じです。

参照

MI_CpuCopy*, MI_DmaCopy*, SVC_CpuClear*

履歴

2004/01/18 初版