プログラミングインタフェース

メモリーセグメントの再バインド

再バインド操作は、エクスポートセグメントの現在のバッキングストアを解放します。現在のバッキングストアを解放した後、再バインド操作は、新しいバッキングストアを割り当てます。まず始めにアプリケーションは、セグメント用の新しい仮想メモリー割り当てを取得する必要があります。この操作はセグメントのインポータに透過的です。


注 –

アプリケーションは、再バインド操作が完了するまで、セグメントデータへアクセスしてはいけません。再バインド中にセグメントからデータを取得しようとしてもシステムエラーにはなりませんが、このような操作の結果は定義されていません。


セグメントの再バインド

int rsm_memseg_export_rebind( rsm_memseg_export_handle_t memseg, void *vaddr, offset_t off, size_t size);

戻り値: 成功した場合、0 を返します。そうでない場合、エラー値を返します。

RSMERR_BAD_SEG_HNDL

セグメントハンドルが無効です。

RSMERR_BAD_LENGTH

長さが無効です。

RSMERR_BAD_ADDR

アドレスが無効です。

RSMERR_REBIND_NOT_ALLOWED

再バインドは許可されていません。

RSMERR_NOT_CREATOR

セグメントの作成者ではありません。

RSMERR_PERM_DENIED

アクセス権がありません。

RSMERR_INSUFFICIENT_MEM

メモリーが不足しています。

RSMERR_INSUFFICIENT_RESOURCES

リソースが不足しています。

RSMERR_INTERRUPTED

シグナルによって操作が割り込まれました。