RANDOM_HARVEST(9) | FreeBSD Kernel Developer's Manual | RANDOM_HARVEST(9) |
名称
random_harvest — エントロピデバイスのためのカーネルからエントロピを獲得する書式
#include < sys/types.h>#include < sys/random.h>
void
random_harvest( void *entropy, u_int size, u_int bits, u_int frac, enum esource source);
解説
random_harvest() 関数は、デバイスドライバによって、およびエントロピデバイスに (少なくとも部分的に) 統計的と見なされるデータを渡すために他のカーネルプロセスによって使用されます。呼び出し側は entropy で“ランダム”データの (16 バイト未満への) ポインタを渡すべきです。引数 size は指されたバイト数を含んでいます。呼び出し側は、サンプルのランダムビットの数を 非常に保守的に 評価して、 bits または frac でこれを渡すべきです。サンプル毎の評価されたビットが整数であるなら、 bits が使用され、 frac は 0 です。そうでなければ、低エントロピのサンプルにおいて、“分数”エントロピは frac で供給することができます。 (これはエントロピの frac / 1024 ビットであると見なされます。) source は、 RANDOM_WRITE, RANDOM_KEYBOARD, RANDOM_MOUSE, RANDOM_NET と RANDOM_INTERRUPT から選ばれ、エントロピのソースを示すために使用されます。
割り込みハーベスト (捕獲) はカーネルプログラマのために簡素化されました。デバイスドライバが BUS_SETUP_INTR(9) か bus_setup_intr(9) で割り込みハンドラを登録するなら、エントロピハーベストに使用される割り込みソースにある flags 引数に INTR_ENTROPY ビットのみを含む必要があります。
February 6, 2002 | FreeBSD |