tail head cat sleep
QR code linking to this page

manページ  — VSLOCK

名称

vslock, vsunlock – ユーザ空間のアドレスのメモリへのロックとアンロック

内容

書式

#include <sys/param.h>
#include <sys/proc.h>
#include <vm/vm.h>
#include <vm/vm_extern.h>

int
vslock(void *addr, size_t len);

void
vsunlock(void *addr, size_t len);

解説

vslock() および vsunlock() 関数は現在実行中のプロセスに属するアドレスの範囲を メモリ中にそれぞれロックしたりアンロックしたりします。 ロックされる実際のメモリ量はマシンのページサイズの倍数になります。 開始ページナンバは addr をすぐ前のページ境界に切りつめられ、終了ページは addr, + len の次のページ境界に切り上げられて計算されます。 この操作に使用されるプロセスのコンテキストはグローバル変数 curproc を参照します。

戻り値

vslock() 関数は成功すると 0 を返し、そうでないと以下に示すエラーの中の 1 つを 返します。

エラー

vslock() 関数は以下の場合に失敗します。
[EINVAL]
  addr および len パラメータがマシンのアドレス空間の最後をラップアラウンドする メモリ領域を指定しています。
[ENOMEM]
  指定されたアドレス範囲の大きさがロックされたメモリのシステム制限を 超過しています。
[ENOMEM]
  要求されたアドレス範囲をロックすることが、そのプロセスのプロセス毎の ロックされたメモリの制限を超過させます。
[EFAULT]
  示されたアドレス範囲の中の幾つかの部分が割り当てられていません。 ページのマッピングにエラー/失敗があります。

VSLOCK (9) August 10, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

One of the advantages of using UNIX to teach an operating systems course is the sources and documentation will easily fit into a student's briefcase.
— John Lions