snd_mbx

isnd_mbx

概要

メッセージの送信

C言語形式

 ER      snd_mbx ( ID mbxid, T_MSG *pk_msg );
 ER      isnd_mbx ( ID mbxid, T_MSG *pk_msg );
パラメータ

I/O

パラメータ

説明

I

 ID      mbxid;
メールボックスのID

I

 T_MSG   *pk_msg;
メッセージを格納した領域へのポインタ



【 TA_MFIFO属性用メッセージT_MSGの構造 】

 typedef struct  {
         VP   *msghead;       /*RI600V4管理領域*/
 } T_MSG;


【 TA_MPRI属性用メッセージT_MSG_PRIの構造 】

 typedef struct  {
         T_MSG   msgque;      /* メッセージヘッダ*/
         PRI     msgpri;      /* メッセージ優先度 */
 } T_MSG_PRI;


機能

mbxidで指定されたメールボックスにpk_msgで指定されたメッセージを送信します。

ただし,本サービス・コールを発行した際,対象メールボックスの待ちキューにタスクがキューイングされていた場合には,メッセージの送信(メッセージのキューイング処理)は行わず,該当タスクにメッセージを渡します。これにより,該当タスクは,待ちキューから外れ,WAITING状態(メッセージ受信待ち状態)からREADY状態へ,またはWAITING-SUSPENDED状態からSUSPENDED状態へと遷移します。

備考1 メッセージを対象メールボックスのメッセージ・キューにキューイングする際のキューイング方式は,コンフィギュレーション時に定義された順(FIFO順またはメッセージ優先度順)に行われます。

備考2 送信したメッセージ(pk_msgが指す領域)は,受信されるまでの間に書き換えてはなりません。

戻り値

マクロ

数値

意味

E_OK

0

正常終了

E_PAR

-17

パラメータ・エラー

- 対象メールボックスがTA_MPRI属性の場合:

- msgpri≦0

- msgpri > TMAX_MPRI

E_ID

-18

不正ID番号

- mbxid≦0

- mbxidVTMAX_MBX

E_CTX

-25

コンテキスト・エラー

- CPUロック状態から本サービス・コールを発行した。

- タスクからisnd_mbxを発行した。

- 非タスクからsnd_mbxを発行した。

- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。