KERNACC(9) | FreeBSD Kernel Developer's Manual | KERNACC(9) |
名称
kernacc, useracc — メモリ領域のアクセス可能性をチェックする書式
#include < sys/param.h>#include < sys/proc.h>
#include < vm/vm.h>
#include < vm/vm_extern.h>
int
kernacc( void *addr, int len, int rw);
int
useracc( void *addr, int len, int rw);
解説
kernacc() と useracc() 関数は、 rw で指定されたタイプの操作が addr と len によって与えられた仮想アドレスの範囲で許可されるかどうかチェックします。 rw の指定できる値は、 VM_PROT_READ, VM_PROT_WRITE と VM_PROT_EXECUTE のあらゆるビット単位の組み合わせです。 kernacc() は、カーネルアドレス空間のアドレスをチェックし、一方 useracc() は、 addr をユーザ空間のアドレスを表わすものと見なします。この操作に使用するプロセスコンテキストは、グローバル変数 curproc から得られます。戻り値
両方の関数は、 rw によって指定されるアクセスのタイプが許可されるなら、ブール値の真を返します。そうでなければ、ブール値の偽が返されます。バグ
プロセスポインタは、 useracc() への引数として渡されるべきです。June 16, 1996 | FreeBSD |