スポンサーリンク

KERNACC(9) FreeBSD カーネル開発者マニュアル 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() 関数は、 addr および len によって与えられる仮 想アドレス範囲で、 rw で指定された操作のタイプが許可されるかどうかを調査 します。 rw の指定可能な値は、 VM_PROT_READ, VM_PROT_WRITE および VM_PROT_EXECUTE の論理合成値です。 kernacc() はカーネルアドレス空間の中の アドレスを調べ、一方 useracc() は addr をユーザ空間のアドレス表現とみなし ます。この操作に使用されるプロセスコンテキストは大域変数 curproc から得ら れます。

戻り値

どちらの関数も、 rw によって指定されるタイプのアクセスが許可されている場 合には、ブール値 true を返します。そうでない場合には、ブール値 false が返 されます。

バグ

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

FreeBSD 10.0 June 16, 1996 FreeBSD 10.0

スポンサーリンク