-
snd_mbx
isnd_mbx
-
ER snd_mbx ( ID mbxid, T_MSG *pk_msg );
ER isnd_mbx ( ID mbxid, 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が指す領域)は,受信されるまでの間に書き換えてはなりません。
|
|
|
|
|
|
|
|
- 対象メールボックスがTA_MPRI属性の場合:
|
|
|
|
|
|
- CPUロック状態から本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
|