VM_MAP_INSERT(9) | FreeBSD Kernel Developer's Manual | VM_MAP_INSERT(9) |
名称
vm_map_insert — マップにオブジェクトを挿入する書式
#include < sys/param.h>#include < vm/vm.h>
#include < vm/vm_map.h>
int
vm_map_insert( vm_map_t map, vm_object_t object, vm_ooffset_t offset, vm_offset_t start, vm_offset_t end, vm_prot_t prot, vm_prot_t max, int cow);
解説
vm_map_insert() 関数はすべての vm_object object のためのマッピングをターゲットマップ map に挿入します。offset 引数はマップを始める object にオフセットを指定します。オブジェクトのサイズは指定されたアドレスの範囲のサイズに適合するべきです。
start と end 引数は map のアドレス空間でマップしているオブジェクトのウィンドウの領域を指定します。
cow 引数は、例えば、コピーオンライト (copy-on-write) マッピングを示す、新しいエントリに伝播されるべきであるフラグを指定します。
実装に関する注
この関数は、内部関数 vm_map_entry_create() を呼び出すことによって、暗黙のうちに新しい vm_map_entry を作成します。戻り値
vm_map_insert() 関数はマッピングを作ることに成功するなら、 KERN_SUCCESS を返します。そうでなければ、範囲の始まりを見つけることができないなら、 KERN_INVALID_ADDRESS を返し、または、範囲が既存のエントリの一部であることがわかったか、またはマップの終りにオーバラップするなら、 KERN_NO_SPACE を返します。
関連項目
vm_map(9)作者
このマニュアルページは、 <bms@spc.org>によって書かれました。January 11, 2013 | FreeBSD |