EN JA
VM_PAGE_FREE(9)
VM_PAGE_FREE(9) FreeBSD Kernel Developer's Manual VM_PAGE_FREE(9)

名称

vm_page_free, vm_page_free_toq, vm_page_free_zero, vm_page_try_to_freeページを解放する

書式

#include < sys/param.h>
#include < vm/vm.h>
#include < vm/vm_page.h>

void
vm_page_free( vm_page_t m);

void
vm_page_free_toq( vm_page_t m);

void
vm_page_free_zero( vm_page_t m);

int
vm_page_try_to_free( vm_page_t m);

解説

vm_page_free_toq() 関数は、フリー (空き) キューに 1 ページを移動させ、オブジェクトからそれを切り離します。ページが保持され、wired で、既にフリーであるか、ビジーカウントが 0 でないなら、システムはパニックします。 PG_ZERO フラグがページに設定されるなら、フリーキューの終わりに置かれます。そうでなければ、それは前方に置かれます。

ページのオブジェクトがタイプ OBJT_VNODE であって、それがオブジェクトに関連している最後のページであるなら、内在する vnode は解放されるかもしれません。

vm_page_free() と vm_page_free_zero() 関数は両方とも実際にページを解放するために vm_page_free_toq() を呼び出しますが、 vm_page_free_zero() は PG_ZERO フラグを設定し、 vm_page_free() は vm_page_free_toq() への呼び出しの前に PG_ZERO フラグをクリアします。

vm_page_try_to_free() 関数は、ページが保持されず、wired で、ビジーまたはダーティか検証します、そうだとすれば、ページをビジーとマークして、ページに設定されるすべての保護を落として、それを解放します。

戻り値

vm_page_try_to_free() はページを解放することができるなら、1 を返し、そうでなければ、0 を返します。

作者

このマニュアルページは、 Chad David <davidc@acns.ab.ca>によって書かれました。
July 24, 2001 FreeBSD