tail head cat sleep
QR code linking to this page

manページ  — VOP_CREATEVOBJECT

名称

VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT, VOP_GETVOBJECT – VM オブジェクトの相互作用

内容

書式

#include <sys/param.h>
#include <sys/vnode.h>

int
VOP_CREATEVOBJECT(struct vnode *vp, struct ucred *cred, struct thread *td);

int
VOP_DESTROYVOBJECT(struct vnode *vp);

int
VOP_GETVOBJECT(struct vnode *vp, struct vm_object **objpp);

解説

これらの呼び出しは、VM オブジェクトと特有の vnode の連係を制御するために 使用されます。

これらの関数で指定する引数は以下の通りです。
vp
  そのファイルの vnode です。
objpp
  返される VM オブジェクト、または呼び出し側がその VM オブジェクトの 存在のテストをする場合には NULL です。

与えられた vnode(9) のために VM オブジェクトを作成する必要がある時には、 VFS(9)VOP_CREATEVOBJECT() を実行します。 ファイルシステムのコードはこの呼び出しを下層のファイルシステムに 渡すことができます。 この VOP は何度も呼び出されることが可能で、ファイルシステムのコードは 追加の全ての呼び出しを無視し、0 を返すコードで終了するべきです。

vnode(9) が再利用された時には、 VOP_DESTROYVOBJECT() が呼び出されます。

VM オブジェクトを取得するために全てのカーネルのコードで、 VOP_GETVOBJECT() が使用されるべきです。 返された VM オブジェクトは、重ねられたマウントの場合には 異なったファイルシステムに属するかもしれません。

VFS(9) は VM オブジェクトの作成および破壊の標準の操作を実行する、 3 つの関数を持っています。 これらの関数は vop_stdcreatevobject(), vop_stddestroyvobject() および vop_stdgetvobject() です。

注意: vnode(9) は入る時にロックされているべきで、終了時までロックされ続けていなければ なりません。

戻り値

VOP_CREATEVOBJECT(), VOP_DESTROYVOBJECT() および VOP_GETVOBJECT() 関数は成功時には 0 を返し、失敗時には 0 ではない値を返します。 成功時には 0 が返され、そうでなければエラーが返されます。

使用例

デフォルトでは、ファイルシステムは vop_std*() 関数に VM オブジェクトの取り扱いを委ねます。

関連項目

vnode(9), VOP_GETPAGES(9), VOP_PUTPAGES(9)

作者

このマニュアルページは Boris Popov が書きました。

VOP_CREATEVOBJECT (9) September 10, 2000

tail head cat sleep
QR code linking to this page


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

It's a UNIX system, I know this!
— Lex Murphy, Jurassic Park