#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 初版