rsm_memseg_export_create を使用して新しいメモリーセグメントを確立すると、セグメントを作成するときに物理メモリーを関連付けることができます。この操作は、エクスポート側のメモリーセグメントハンドルを新しいメモリーセグメントに戻します。セグメントは作成するプロセスが動作している間、または、rsm_memseg_export_destroy を使用して破壊するまで存在します。
インポート側が切断する前に破壊操作が行われた場合、切断が強制的に行われます。
この関数はセグメントハンドルを作成します。セグメントハンドルを作成した後、この関数はセグメントハンドルを指定された仮想アドレス範囲 [vaddr..vaddr+size] にバインドします。この範囲は有効であり、コントローラの alignment プロパティ上に整列している必要があります。flags 引数はビットマスクで、次の操作を有効にします。
セグメント上のバインド解除
セグメント上の再バインド
RSM_ALLOW_REBIND の flags への引き渡し
ロック操作のサポート
RSM_LOCK_OPS の flags への引き渡し
RSM_LOCK_OPS フラグは RSMAPI の初期リリースには含まれません。
戻り値: 成功した場合、0 を返します。そうでない場合、エラー値を返します。
コントローラハンドルが無効です。
コントローラが存在しません。
セグメントハンドルが無効です。
コントローラの長さが 0 あるいは、制限を超えています。
アドレスが無効です。
アクセス権がありません。
メモリーが不足しています。
リソースが不足しています。
アドレスがページ境界に整列されていません。
シグナルによって操作が割り込まれました。
この関数はセグメントとその空きリソースの割り当てを解除します。インポートしているプロセス (インポータ) はすべて強制的に切断されます。
戻り値: 成功した場合、0 を返します。そうでない場合、エラー値を返します。
セグメントハンドルが無効です。
pollfd は使用中です。