WATCHDOG(9) | FreeBSD Kernel Developer's Manual | WATCHDOG(9) |
名称
watchdog — ソフトウェアとハードウェアウォッチドッグ機能書式
#include < sys/watchdog.h> void
watchdog_fn( void *private, u_int cmd, int *error);
EVENTHANDLER_REGISTER( watchdog_list, watchdog_fn, private, 0);
EVENTHANDLER_DEREGISTER( watchdog_list, eventhandler_tag);
解説
ソフトウェアかハードウェアでウォッチドッグを実装するために、ただ一つの関数だけが、グローバルな watchdog_list で書き込まれ、登録される必要があります。関数は cmd 引数を調べ、次の通りに動作しなければなりません:
cmd が 0 であるなら、ウォッチドッグは無効にされ、 error 引数はそのままの状態で残ります。 watchdog を無効にすることができないなら、 error 引数を EOPNOTSUPP に設定しなければなりません。
ほかに、ウォッチドッグはリセットされ、 (1 << ( cmd & WD_INTERVAL)) ナノ秒またはより大きいタイムアウトに設定すべきで、 error 引数は、watchdog のシグナルを装備するために 0 に設定されます。
ウォッチドッグが提案されたタイムアウトに設定することができないなら、それは無効にされなければなりません、そして error 引数は、別の watchdog の装備を隠すのを避けるために、そのままの状態で残ります。
タイムアウトするとき、ウォッチドッグがするべきである仕様はありませんが、ハードウェアリセットか同様の“思い切っているが確実な”振る舞いがお勧めです。
関連項目
watchdog(4)作者
watchdog 機能とこのマニュアルページは、 <phk@FreeBSD.org>によって書かれました。February 28, 2004 | FreeBSD |