EN JA
KERNACC(9)
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 で指定されたタイプの操作が addrlen によって与えられた仮想アドレスの範囲で許可されるかどうかチェックします。 rw の指定できる値は、 VM_PROT_READ, VM_PROT_WRITEVM_PROT_EXECUTE のあらゆるビット単位の組み合わせです。 kernacc() は、カーネルアドレス空間のアドレスをチェックし、一方 useracc() は、 addr をユーザ空間のアドレスを表わすものと見なします。この操作に使用するプロセスコンテキストは、グローバル変数 curproc から得られます。

戻り値

両方の関数は、 rw によって指定されるアクセスのタイプが許可されるなら、ブール値の真を返します。そうでなければ、ブール値の偽が返されます。

バグ

プロセスポインタは、 useracc() への引数として渡されるべきです。
June 16, 1996 FreeBSD