#include <nnsys/mcs.h>
void NNS_McsRegisterRecvCallback(
NNSMcsRecvCBInfo* pInfo,
u16 channel,
NNSMcsRecvCallback cbFunc,
u32 userData);
| pInfo | コールバック関数の情報を保持する構造体へのポインタ。 |
| channel | ストリームを識別するための値。0〜0x3FFFの値を指定できます。0x4000〜0x7FFFはTWL-Systemアプリケーション用、0x8000〜0xFFFFはmcsシステム用に予約しています。 |
| cbFunc | 登録するコールバック関数。 |
| userData | ユーザー任意の値。 |
なし。
データを受信したときにコールバックされる関数を登録します。
cbFuncの型NNSMcsRecvCallbackは次のように定義されています。登録する関数の定義は次のとおりです。
typedef void (*NNSMcsRecvCallback)( const void* recv, u32 recvSize, u32 userData, u32 offset, u32 totalSize);
| recv | 受信したデータの一部あるいは全部を格納しているバッファへのポインタ。 |
| recvSize | recvによって示されるバッファに格納されているデータのサイズ。 |
| userData | NNS_McsRegisterRecvCallback()の引数userDataで指定した値。 |
| offset | 受信したデータの全部がrecvによって示されるバッファに格納されている場合は0。 受信したデータの一部が格納されている場合は、受信したデータ全体に対する0を基準としたオフセット位置。 |
| totalSize | 受信したデータの全体のサイズ。 |
受信したデータが大きい場合は、複数回に分けてコールバック関数が呼び出されます。このとき、recvが指すバッファには一部のデータが格納され、offsetには格納されているデータの全体からのオフセット値が入ります。totalSizeには、常に受信したデータの全体のサイズが入ります。
登録するコールバック関数内ではデータの送受信を行わないでください。 また、割り込みが禁止されている場合があるため、割り込み待ちループも行わないでください。
NNS_McsRegisterStreamRecvBuffer,
NNS_McsUnregisterRecvResource
2006/08/20 NITRO-SystemをTWL-Systemに変更。
2004/11/29 コールバック関数の解説を追加。
2004/10/08 引数channelの解説を追加。また、参照にNNS_McsUnregisterRecvResourceを追加。
2004/08/26 引数channelの型の変更。
2004/06/01 初版