EN JA
RANDOM_HARVEST(9)
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_NETRANDOM_INTERRUPT から選ばれ、エントロピのソースを示すために使用されます。

割り込みハーベスト (捕獲) はカーネルプログラマのために簡素化されました。デバイスドライバが BUS_SETUP_INTR(9)bus_setup_intr(9) で割り込みハンドラを登録するなら、エントロピハーベストに使用される割り込みソースにある flags 引数に INTR_ENTROPY ビットのみを含む必要があります。

作者

FreeBSD random(4) エントロピデバイスとサポート文書は、 Mark R V Murray によって書かれました。
February 6, 2002 FreeBSD