VOP_GETPAGES(9) FreeBSD カーネル開発者マニュアル VOP_GETPAGES(9)
名称
VOP_GETPAGES, VOP_PUTPAGES − ファイルから VM ページへの読み込みまたは書き 込み |
書式
#include <sys/param.h> int |
VOP_GETPAGES(struct vnode *vp, vm_page_t *m, int count, int reqpage, vm_ooffset_t offset); int |
VOP_PUTPAGES(struct vnode *vp, vm_page_t *m, int count, int sync, int *rtvals, vm_ooffset_t offset); |
解説 |
VOP_GETPAGES() メソッドは、通常のファイルが背後にある仮想メモリのページの 読み込みのために、呼び出されます。他の隣接したページの背後に同じファイル の隣接した領域がある場合には、 VOP_GETPAGES() は同様にそれらのページを読 み込ませるために要求されますが、そうすることが必須なわけではありません。 VOP_PUTPAGES() メソッドは反対のことを行います。すなわち、仮想メモリの隣接 したダーティなページを書き出させます。 入る時に、vnode のロックは保持されますが、ページキューと VM オブジェクト のロックはどちらも保持されません。両方のメソッドは、成功して戻る時とエ ラーで戻る時と両方とも、そのままの状態で戻ります。 引数は以下の通りです。 |
vp
アクセスするファイル。 m count sync rtvals reqpage offset VOP_PUTPAGES() メソッドの状態は、配列 rtvals[] の中に、個々のページごとに 返されます。起こり得る状態値は以下の通りです。 VM_PAGER_OK VM_PAGER_PEND VM_PAGER_BAD VM_PAGER_ERROR VM_PAGER_FAIL VM_PAGER_AGAIN 戻り値 |
成功して m[reqpage] を読み込んだ場合には VOP_GETPAGES() は VM_PAGER_OK を 返し、そうでない場合には VM_PAGER_ERROR を返します。慣習で、 VOP_PUTPAGES() の戻り値は rtvals[0] です。 |
関連項目
vm_object_pip_wakeup(9), vm_page_free(9), vm_page_io_finish(9), vm_page_undirty(9), vm_page_wakeup(9), vnode(9) |
作者
このマニュアルページは Doug Rabson
が書き、その後実質上 FreeBSD 10.0 September 27, 2003 FreeBSD 10.0 |