ACCESS(9)

名称
access, kernacc, useracc - メモリ範囲のアクセス権のチェック

書式
int kernacc(caddr_t addr, size_t len, int rw) int useracc(caddr_t addr, size_t len, int rw)

解説
関数 kernacc() と useracc() は、 addr と len で指定された仮想アドレスの範囲において、 rw で指定されたメモリ操作が許されるかどうかをチェックします。 rw に指定できる値は B_READ と B_WRITE です。 addr は kernacc() ではカーネルアドレス空間、 useracc() ではユーザアドレス空間の領域を調べるものとしてとして解釈されます。 このチェックで参照されるプロセスコンテクストは、グローバル変数の curproc から得ます。

戻り値
これらの関数は両方とも rw で指定されたアクセスが許されるならば 1 を返し、そうでなければ 0 を返します。

バグ
プロセスのポインタを引数として渡すようにすべきです。