NNS_McsRegisterRecvCallback

構文

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