拡張同期・通信
[EN] cre_mbf(メッセージバッファ生成)
・管理ブロックとメッセージ用バッファの確保
・接続機能が利用可能
・exinfの拡張情報はref_mbfで利用可
C言語関数
ER ercd = cre_mbf( ID mbfid, T_CMBF *pk_cmbf );
引数
ID mbxid メッセージバッファID(TMBF_DB = -3(デバッグ時使用)、TMBF_OS = -4(エラーログ))
T_CMBF* pk_cmbf メッセージバッファ生成情報
pk_cmbfの中身
VP exinf 拡張情報
ATR mbfatr メッセージバッファ属性(TA_TFIFO(タスクはFIFO) or TA_TPRI(タスクは優先度順-レベルX))
INT bufsz メッセージバッファのサイズ
INT maxmsz メッセージの最大長
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_NOMEM 管理ブロックやリングバッファ用の領域が確保できない
E_RSATR mbfatrが不正
E_RAR pk_cmbfが不正、bufsz、maxmszが負または不正
E_ID mbfidが不正
E_OBJ mbfidのメッセージバッファが既に存在
E_OACV tskid<-4のメッセージバッファは利用不可インプリメント依存
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_PAR 対象ノードでexinf、mbfatr、bufsz、maxmszが不正
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのメッセージバッファを指定
[EN] del_mbf(メッセージバッファ削除)
・接続機能が利用可能
・管理ブロックとメッセージ用のバッファの解放
・複数のタスクを管理するメッセージバッファを削除後の同優先度の順序はインプリメント依存
C言語関数
ER ercd = del_mbf( ID mbfid );
引数
ID mbfid メッセージバッファID
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_NOMEM 管理ブロックやリングバッファ用の領域が確保できない
E_RSATR mbfatrが不正
E_ID mbfidが不正
E_NOEXS mbfidのメッセージバッファが存在していない
E_OACV tskid<-4のメッセージバッファは利用不可(インプリメント依存)
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのメッセージバッファを指定
[EN] snd_mbf(メッセージバッファへ送信)
・接続機能が利用可能
・送信バッファに余裕があるときmsgをメッセージキュー(リングバッファ)に送信
・送信バッファに余裕がないとき送信待ち行列(キューイングはFIFO)に並ぶ
C言語関数
ER ercd = snd_mbf( ID mbfid, VP msg, INT msgz );
引数
ID mbfid メッセージバッファID
INT msgsz 送信メッセージのサイズ
VP msg 送信メッセージのアドレス
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR msgsz≦0、msgsz>maxmsz、msgが不正
E_NOEXS mbfidのメッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中にメッセージバッファが削除された
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_PAR 対象ノードでmsgszが不正
[EN] psnd_mbf(メッセージバッファへ送信(ポーリング))
・接続機能が利用可能
・送信バッファに余裕があるときmsgをメッセージキュー(リングバッファ)に送信
・送信バッファに余裕がないときE_TMOUT
C言語関数
ER ercd = psnd_mbf( ID mbfid, VP msg, INT msgz );
引数
ID mbfid メッセージバッファID
INT msgsz 送信メッセージのサイズ
VP msg 送信メッセージのアドレス
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR msgsz≦0、msgsz>maxmsz、msgが不正
E_NOEXS mbfidのメッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行(インプリメント依存)
E_DLT 待機中にメッセージバッファが削除された
E_TMOUT ポーリング失敗
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_PAR 対象ノードでmsgszが不正
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのメッセージバッファを指定(インプリメント依存)
[EN] tsnd_mbf(メッセージバッファへ送信(タイムアウト有))
・接続機能が利用可能
・送信バッファに余裕があるときmsgをメッセージキュー(リングバッファ)に送信
・送信バッファに余裕がないとき送信待ち行列(キューイングはFIFO)に並ぶ、tmout経過後E_TMOUT
・tmoutがTMO_POLならばpsnd_mbf、TMO_FEVRならばsnd_mbf
C言語関数
ER ercd = tsnd_mbf( ID mbfid, VP msg, INT msgz, TMO tmout );
引数
ID mbfid メッセージバッファID
INT msgsz 送信メッセージのサイズ
VP msg 送信メッセージのアドレス
TMO tmout タイムアウト時間(TMO_POL = 0(0)、TMO_FEVR = -1(∞))
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR msgsz≦0、msgsz>maxmsz、msgが不正、tmout≦-2
E_NOEXS mbfidのメッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行(tsnd_mbf(tmout=TMO_POL)限る、インプリメント依存)
E_DLT 待機中にメッセージバッファが削除された
E_TMOUT タイムアウト
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_PAR 対象ノードでmsgsz、tmoutがサポートされていない
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのメッセージバッファを指定(tsnd_mbf(tmout=TMO_POL)に限る、インプリメント依存)
[EN] rcv_mbf(メッセージバッファから受信)
・接続機能が利用可能
・受信バッファにメッセージが有るときメッセージキューからmsgに受信
・受信後msgのサイズをリターン
・受信バッファにメッセージが無いとき受信待ち行列に並ぶ
C言語関数
ER ercd = rcv_mbf( VP msg, INT *p_msgsz, ID mbfid );
引数
ID mbfid メッセージバッファID
VP msg 受信メッセージのアドレス
戻り値
ER ercd エラーコード
INT msgsz 受信メッセージのサイズ
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR msgが不正
E_NOEXS mbfidのメッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中メッセージバッファが削除された
E_TMOUT タイムアウト
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_PAR 対象ノードでtmoutがサポートされていない
EN_RPAR 対象ノードから返されたmsgszが不正
[EN] prcv_mbf(メッセージバッファから受信(ポーリング))
・接続機能が利用可能
・受信バッファにメッセージが有るときメッセージキューからmsgに受信
・受信後msgのサイズをリターン
・受信バッファにメッセージが届いていないときE_TMOUT
C言語関数
ER ercd = prcv_mbf( VP msg, INT *p_msgsz, ID mbfid );
引数
ID mbfid メッセージバッファID
VP msg 受信メッセージのアドレス
戻り値
ER ercd エラーコード
INT msgsz 受信メッセージのサイズ
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR msgが不正
E_NOEXS メッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中にメッセージバッファが削除された
E_TMOUT ポーリング失敗
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_RPAR 対象ノードから返ってきたmsgszが不正
[EN] trcv_mbf(メッセージバッファから受信(タイムアウト有))
・接続機能が利用可能
・受信バッファにメッセージが有るときメッセージキューからmsgに受信
・受信後msgのサイズをリターン
・受信バッファにメッセージが無いとき受信待ち行列に並ぶ、tmout経過後E_TMOUT
・tmoutがTMO_POLならばprcv_mbf、TMO_FEVRならばrcv_mbf
C言語関数
ER ercd = trcv_mbf( VP msg, INT *p_msgsz, ID mbfid, TMO tmout );
引数
ID mbfid メッセージバッファID
VP msg 受信メッセージのアドレス
TMO tmout タイムアウト時間(TMO_POL = 0(0)、TMO_FEVR = -1(∞))
戻り値
ER ercd エラーコード
INT msgsz 受信メッセージのサイズ
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR msgが不正、tmout≦-2
E_NOEXS mbfidのメッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中にメッセージバッファが削除された
E_TMOUT タイムアウト
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_PAR 対象ノードでtmoutがサポートされていない
EN_RPAR 対象ノードから返ってきたmsgszが不正
[EN] ref_mbf(メッセージバッファ状態参照)
・接続機能が利用可能
C言語関数
ER ercd = ref_mbf( T_RMBF *pk_rmbf, ID mbfid );
引数
ID mbfid メッセージバッファID
TRMBF* pk_rmbf メッセージバッファ状態のアドレス
戻り値
ER ercd エラーコード
pk_rmbfの中身
VP exinf 拡張情報
BOOL_ID wtsk 受信待機アドレスの有無(FALSE = 0(無し))
BOOL_ID stsk 送信待機アドレスの有無(FALSE = 0(無し))
INT msgsz 次に受信されるメッセージの大きさ
INT frbufsz 空きバッファの大きさ
エラーの内容
E_OK 正常終了
E_ID mbfidが不正
E_PAR pk_rmbfが不正
E_NOEXS mbfidのメッセージバッファが存在しない
E_OACV mbfid<-4のメッセージバッファは利用不可(インプリメント依存)
EN_OBJNO 対象ノードのmbfidのメッセージバッファが不正または存在しない
EN_RPAR 対象ノードから返ってきたexinf、wtsk、stsk、msgsz、frbufszが不正
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのメッセージバッファを指定
[EN] cre_por(ランデブポート生成)
・管理ブロックを確保
・接続機能が利用可能
・poratrにはTA_NULL
・exinf(拡張情報)はref_porで呼び出せる
C言語関数
ER ercd = cre_por( ID porid, T_CPOR *pk_cpor );
引数
ID porid ランデブ用ポートID
T_CMBF* pk_cpor ランデブ用ポート生成情報
pk_cporの中身
VP exinf 拡張情報
ATR poratr ポート属性(TA_NULL = 0(デフォルト))
INT maxcmsz 呼出時メッセージの最大長
INT maxrmsz 返答用メッセージの最大長
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_NOMEM 管理ブロックが確保できない
E_RSATR poratrが不正
E_RAR pk_cpor、maxcmsz、maxrmszが不正
E_ID poridが不正
E_OBJ poridのポートが既に存在
E_OACV porid<-4のポートは利用不可(インプリメント依存)
EN_OBJNO 対象ノードのporidのポートが不正または存在しない
EN_PAR 対象ノードでexinf、poratr、maxcmsz、maxrmszがサポートされていない
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのポートを指定
[EN] del_por(ランデブポート削除)
・接続機能が利用可能
・削除後ポートに待機中のタスクはE_DLT
・ランデブ成立済みタスクを削除してもエラーにならない
・複数のタスクを管理するポートを削除後、同優先度の順序はインプリメント依存
・管理ブロックを解放
C言語関数
ER ercd = del_por( ID porid );
引数
ID porid ランデブ用ポートID
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
EN_OBJNO 対象ノード側のporidのポートが不正または存在しない
EN_CTXID タスク独立部あるいはディスパッチ禁止状態のタスクから他ノードのポートを指定
[EN] cal_por(ポートに対するランデブの呼出)
・指定ポートにWAIT状態(ランデブ受付待ち)で受付側acpptnと呼出側calptnの積が0以外のとき、ランデブ成立で受付側がREADY状態に、呼出側がWAIT状態(ランデブ終了待ち)になる
・指定ポートに複数の受付状態タスクがあるときは先頭から順番に条件を比較していく
・指定ポートにWAIT状態(ランデブ受付待ち)で受付側acpptnと呼出側calptnの積が0以外のタスクがないときWAIT状態(ランデブ呼出待ち)になる
・ランデブ成立時に受付側にcmsgszのmsgが送信できる
・ランデブ終了時に呼出側にp_rmsgszのmsgが受信できる
・接続機能が利用可能
C言語関数
ER ercd = cal_por( VP msg, INT *p_rmsgsz, ID porid, UINT calptn, INT cmsgsz );
引数
ID porid ランデブ用ポートID
UINT calptn 呼出側選択条件のビットパターン
VP msg メッセージアドレス
INT cmsgsz 呼出メッセージの大きさ
戻り値
ER ercd エラーコード
INT p_rmsgsz 返答メッセージの大きさ
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_PAR cmsgsz≦0、cmsgsz>maxcmsz、calptn=0、msgが不正
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中に対象ポートが削除された
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのporidのポートが不正または存在しない
EN_PAR 対象ノードでcalptn、cmsgszがサポートされていない
EN_RPAR 対象ノードから返されたp_rmsgszが不正
[EN] pcal_por(ポートに対するランデブの呼出(ポーリング))
・指定ポートにWAIT状態(ランデブ受付待ち)で受付側acpptnと呼出側calptnの積が0以外のとき、ランデブ成立で受付側がREADY状態に、呼出側がWAIT状態(ランデブ終了待ち)になる
・指定ポートに複数の受付状態タスクがあるときは先頭から順番に条件を比較していく
・指定ポートにWAIT状態(ランデブ受付待ち)で受付側acpptnと呼出側calptnの積が0以外のタスクがないときE_TMOUT
・ランデブ成立時に受付側にcmsgszのmsgが送信できる
・ランデブ終了時に呼出側にp_rmsgszのmsgが受信できる
・接続機能が利用可能
C言語関数
ER ercd = pcal_por( VP msg, INT *p_rmsgsz, ID porid, UINT calptn, INT cmsgsz );
引数
ID porid ランデブ用ポートID
UINT calptn 呼出側選択条件のビットパターン
VP msg メッセージアドレス
INT cmsgsz 呼出メッセージの大きさ
戻り値
ER ercd エラーコード
INT p_rmsgsz 返答メッセージの大きさ
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_PAR cmsgsz≦0、cmsgsz>maxcmsz、calptn=0、msgが不正
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_TMOUT ポーリング失敗
EN_OBJNO 対象ノードのporidのポートが不正または存在しない
EN_PAR 対象ノードでcalptn、cmsgszがサポートされていない
EN_RPAR 対象ノードから返されたp_rmsgszが不正
[EN] tcal_por(ポートに対するランデブの呼出(タイムアウト有))
・指定ポートにWAIT状態(ランデブ受付待ち)で受付側acpptnと呼出側calptnの積が0以外のとき、ランデブ成立で受付側がREADY状態に、呼出側がWAIT状態(ランデブ終了待ち)になる
・指定ポートに複数の受付状態タスクがあるときは先頭から順番に条件を比較していく
・指定ポートにWAIT状態(ランデブ受付待ち)で受付側acpptnと呼出側calptnの積が0以外のタスクがないときWAIT状態(ランデブ呼出待ち)に、tmout経過後E_TMOUT
・ランデブ成立時に受付側にcmsgszのmsgが送信できる
・ランデブ終了時に呼出側にp_rmsgszのmsgが受信できる
・接続機能が利用可能
・tmoutがTMO_POLならpcal_por、TMO_FEVRならcal_por
C言語関数
ER ercd = tcal_por( VP msg, INT *p_rmsgsz, ID porid, UINT calptn, INT cmsgsz, TMO tmout );
引数
ID porid ランデブ用ポートID
UINT calptn 呼出側選択条件のビットパターン
VP msg メッセージアドレス
INT cmsgsz 呼出メッセージの大きさ
TMO tmout タイムアウト時間(TMO_POL = 0(0)、TMO_FEVR = -1(∞))
戻り値
ER ercd エラーコード
INT p_rmsgsz 返答メッセージの大きさ
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_PAR cmsgsz≦0、cmsgsz>maxcmsz、calptn=0、msgが不正、tmout≦-2
E_NOEXS poridのポートが存在しない
E_OACV ユーザタスクからporid<(-4)のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中に対象ポートが削除された
E_TMOUT タイムアウト
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_OBJNO 対象ノードのporidのポートが不正または存在しない
EN_PAR 対象ノードでcalptn、cmsgsz、tmoutがサポートされていない
EN_RPAR 対象ノードから返されたp_rmsgszが不正
[E] acp_por(ポートに対するランデブ受付)
・指定ポートに呼出状態(ランデブ呼出待ち)で受付側acpptnと呼出側calptnの積が0以外ならランデブ成立で受付側がREADY状態に、呼出側がWAIT状態(ランデブ終了待ち)になる
・指定ポートに呼出状態(ランデブ呼出待ち)で受付側acpptnと呼出側calptnの積が0以外の条件を満たすタスクがないとき受付状態(ランデブ受付待ち)で行列を作る
・再度実行する(外部から影響)可能性がある場合、rdvnoは呼出側の状態を判断できるようにする
・ランデブ成立時に呼出側からp_cmsgszのmsgが受信できる
・接続機能が利用可能
C言語関数
ER ercd = acp_por( RNO *p_rdvno, VP msg, INT *p_cmsgsz, ID porid, UINT acpptn );
引数
ID porid ポートID
UINT acpptn 受信側選択条件のビットパターン
VP msg 呼出メッセージアドレス
戻り値
ER ercd エラーコード
RNO rdvno ランデブ番号
INT cmsgsz 呼出メッセージの大きさ
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_PAR acpptn=0、msgが不正
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中にポートが削除された
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_NOSPT サポートされていない接続機能
[E] pacp_por(ポートに対するランデブ受付(ポーリング))
・指定ポートに呼出状態(ランデブ呼出待ち)で受付側acpptnと呼出側calptnの積が0以外ならランデブ成立で受付側がREADY状態に、呼出側がWAIT状態(ランデブ終了待ち)になる
・指定ポートに呼出状態(ランデブ呼出待ち)で受付側acpptnと呼出側calptnの積が0以外の条件を満たすタスクがないときE_TMOUT
・再度実行する(外部から影響)可能性がある場合、rdvnoは呼出側の状態を判断できるようにする
・ランデブ成立時に呼出側からp_cmsgszのmsgが受信できる
・接続機能が利用可能
C言語関数
ER ercd = pacp_por( RNO *p_rdvno, VP msg, INT *p_cmsgsz, ID porid, UINT acpptn );
引数
ID porid ポートID
UINT acpptn 受信側選択条件のビットパターン
VP msg 呼出メッセージアドレス
戻り値
ER ercd エラーコード
RNO rdvno ランデブ番号
INT cmsgsz 呼出メッセージの大きさ
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_PAR acpptn=0、msgが不正
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_TMOUT ポーリング失敗
EN_NOSPT サポートされていない接続機能
[E] tacp_por(ポートに対するランデブ受付(タイムアウト有))
・指定ポートに呼出状態(ランデブ呼出待ち)で受付側acpptnと呼出側calptnの積が0以外ならランデブ成立で受付側がREADY状態に、呼出側がWAIT状態(ランデブ終了待ち)になる
・指定ポートに呼出状態(ランデブ呼出待ち)で受付側acpptnと呼出側calptnの積が0以外の条件を満たすタスクがないとき受付状態(ランデブ受付待ち)で行列を作る、tmout経過後E_TMOUT
・再度実行する(外部から影響)可能性がある場合、rdvnoは呼出側の状態を判断できるようにする
・ランデブ成立時に呼出側からp_cmsgszのmsgが受信できる
・tmoutがTMO_POLならpacp_por、TMO_FEVRならacp_por
・接続機能が利用可能
C言語関数
ER ercd = tacp_por( RNO *p_rdvno, VP msg, INT *p_cmsgsz, ID porid, UINT acpptn, TMO tmout );
引数
ID porid ポートID
UINT acpptn 受信側選択条件のビットパターン
VP msg 呼出メッセージアドレス
TMO tmout タイムアウト時間(TMO_POL = 0(0)、TMO_FEVR = -1(∞))
戻り値
ER ercd エラーコード
RNO rdvno ランデブ番号
INT cmsgsz 呼出メッセージの大きさ
エラーの内容
E_OK 正常終了
E_ID poridが不正
E_PAR acpptn=0、msgが不正、tmout≦-2
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
E_DLT 待機中にポートが削除された
E_TMOUT タイムアウト
E_RLWAI 待機中に待機強制解除(rel_wai)を受け付け
EN_NOSPT サポートされていない接続機能
[E] fwd_por(ポートに対するランデブ回送)
・呼出側(rdvno)、受付側(自タスク)のランデブを終了する
・呼出側をcal_por( msg, 終了メッセージの大きさ, porid, calptn, cmsgsz )でリセットする
C言語関数
ER ercd = fwd_por( ID porid, UINT calptn, RNO rdvno, VP msg, INT cmsgsz );
引数
ID porid ランデブ用ポートID
UINT calptn 呼出側選択条件のビットパターン
RNO rdvno 回送前のランデブ番号
VP msg メッセージアドレス
INT cmsgsz 呼出メッセージの大きさ
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_ID poridが不正あるいは利用できない、poridが他ノードのポート
E_PAR cmsgsz≦0、cmsgsz>回送後のmaxcmsz、cmsgsz>回送前のmaxrmsz、calptn=0、msgが不正
E_NOEXS poridのポートが存在しない
E_OBJ rdvnoが不正、回送後のmaxrmsz>回送前のmaxrmsz
E_OACV porid<-4のポートは利用不可(インプリメント依存)
E_CTX タスク独立部またはディスパッチ禁止状態で実行
EN_NOSPT サポートされていない接続機能
[E] rpl_rdv(ランデブ返答)
・受付側の処理終了を呼出側(rdvno、ランデブ終了待ち)に通知して、自タスクはWAIT状態になる
・呼出側にcmsgszの大きさのmsgを送信できる
C言語関数
ER ercd = rpl_rdv( RNO rdvno, VP msg, INT rmsgsz );
引数
RNO rdvno ランデブ番号
VP msg 返答メッセージアドレス
INT cmsgsz 返答メッセージの大きさ
戻り値
ER ercd エラーコード
エラーの内容
E_OK 正常終了
E_PAR rmsgsz≦0、rmsgsz>maxrmsz、msgが不正
E_OBJ rdvnoが不正
E_CTX タスク独立部から発行(インプリメント依存)
EN_CTXID ディスパッチ禁止状態から呼出側タスクが他ノードのポートを指定(インプリメント依存)
[EN] ref_por(ポート状態参照)
・接続機能が利用可能
C言語関数
ER ercd = ref_por( T_RPOR *pk_rpor, ID porid );
引数
ID porid ランデブ用ポートID
T_RPOR* pk_rpor ポート状態のアドレス
戻り値
ER ercd エラーコード
pk_rpor
VP exinf 拡張情報
BOOL_ID wtsk 呼出待機タスクの有無(FALSE = 0(無し))
BOOL_ID atsk 受信待機タスクの有無(FALSE = 0(無し))
エラーの内容
E_OK 正常終了
E_ID poridが不正、poridが他ノードのポート
E_PAR pk_rporが不正
E_NOEXS poridのポートが存在しない
E_OACV porid<-4のポートは利用不可(インプリメント依存)
EN_OBJNO 対象ノードのporidのポートが不正または存在しない
EN_PAR 対象ノードでcalptn、cmsgsz、tmoutがサポートされていない
EN_RPAR 対象ノードから返ってきたrmsgszが不正