NAME
ibv_reg_mr, ibv_dereg_mr - Memory region (MR) を登録・登録削除する。
SYNOPSIS
#include <infiniband/verbs.h> struct ibv_mr *ibv_reg_mr(struct ibv_pd *pd, void *addr, size_t length, int access); int ibv_dereg_mr(struct ibv_mr *mr);
DESCRIPTION
ibv_reg_mr()
は protection domain pd に関連付けられた memory region(MR) を登録する。
addr には開始アドレスを length にはサイズを指定する。
access はメモリ保護のためにアクセス権限を指定する。
指定する値は 0 (Local Read Access のみ)か、以下の表のマクロを論理和した値を指定する。
マクロ | 意味 |
---|---|
IBV_ACCESS_LOCAL_WRITE | Enable Local Write Access |
IBV_ACCESS_REMOTE_WRITE | Enable Remote Write Access |
IBV_ACCESS_REMOTE_READ | Enable Remote Read Access |
IBV_ACCESS_REMOTE_ATOMIC | Enable Remote Atomic Operation Access (サポートしていれば) |
IBV_ACCESS_MW_BIND | Enable Memory Window Binding |
IBV_ACCESS_REMOTE_WRITE または IBV_ACCESS_REMOTE_ATOMIC を指定する場合は、IBV_ACCESS_LOCAL_WRITE も指定する必要がある。
Local Read Access は常に有効である(指定は不要)。
ibv_dereg_mr()
は mr で示される MR を登録削除する。
RETURN VALUE
ibv_reg_mr()
は成功すれば登録された MR へのポインタを返す。
失敗すれば NULL を返す。
ibv_dereg_mr()
は成功すれば 0 を返す。
失敗した場合は、エラーの原因を示す値(errno と同じ)を返す。
NOTES
ibv_dereg_mr()
は mr に関連付けられたオブジェクトを解放せずに呼び出すと失敗することがある。
SEE ALSO
InfiniBand Verbs API Reference、ibv_alloc_pd(3)、ibv_post_send(3)、ibv_post_recv(3)、ibv_post_srq_recv(3)
AUTHORS
原文 Dotan Barak <dotanba@gmail.com>