VM_MAP_SUBMAP(9) | FreeBSD Kernel Developer's Manual | VM_MAP_SUBMAP(9) |
名称
vm_map_submap — 下位のマップを作成する書式
#include < sys/param.h>#include < vm/vm.h>
#include < vm/vm_map.h>
int
vm_map_submap( vm_map_t map, vm_offset_t start, vm_offset_t end, vm_map_t submap);
解説
vm_map_submap() 関数は、下位のマップ sub_map によって取り扱われる、マップ map 中の start と end によってバイントされる範囲をマークします。一般的に、それはカーネルメモリアロケータによって呼び出されます。
実装に関する注
この関数は内部の使用だけのためのものです。両方のマップは存在しなければなりません。範囲は以前に、 vm_map_find(9) で作成されていなければなりません。
この関数を呼び出す前に、他の操作は、この範囲で実行されていないかもしれません。 vm_fault() 操作は、この関数を呼び出した後に、この範囲中でのみ実行できます。
サブマッピングを取り除くためには、最初に親の map から範囲を取り除いて、次に、 sub_map を破壊しなければなりません。この手続きは推薦されません。
戻り値
vm_map_submap() 関数は成功するなら、 KERN_SUCCESS を返します。そうでなければ、呼び出し側がコピーオンライト (copy-on-write) フラグを要求するなら、または、サブマップに指定された範囲が親マップのための範囲外であったなら、または、 NULL バッキング (backing) オブジェクトが指定されたなら、 KERN_INVALID_ARGUMENT を返します。
作者
このマニュアルページは、 <bms@spc.org>によって書かれました。July 19, 2003 | FreeBSD |