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.

UNIX has been evolving feverishly for close to 30 years, sort of like bacteria in a cesspool — only not as attractive
— John Levine, "Unix for Dummies"