EN JA
MODSTAT(2)
MODSTAT(2) FreeBSD System Calls Manual MODSTAT(2)

名称

modstatカーネルモジュールの状態を取得する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/param.h>
#include < sys/module.h>

int
modstat( int modid, struct module_stat *stat);

解説

modstat() システムコールは、 modid によって参照されるカーネルモジュールのための情報を stat に書き込みます。

struct module_stat { 
 int         version;        /* set to sizeof(module_stat) */ 
 char        name[MAXMODNAME]; 
 int         refs; 
 int         id; 
 modspecific_t data; 
}; 
typedef union modspecific { 
 int         intval; 
 u_int       uintval; 
 long        longval; 
 u_long      ulongval; 
} modspecific_t;
version
このフィールドは、 modstat() 自体ではなく modstat() を呼び出すコードによって上に記述される構造体のサイズに設定されます。
name
modid によって参照されるモジュールの名前。
refs
modid によって参照されるモジュールの数。
id
modid で指定されるモジュールの ID。
data
モジュール特有のデータ。

戻り値

The modstat() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

次のエラーでなければ、 modid によって参照されるモジュールのための情報は、 stat によって指されている構造体に書き込まれます:
[ ENOENT]
モジュールが見つかりませんでした (たぶんロードされなかった)。
[ EINVAL]
stat の version フィールドで指定されるバージョンが、適切なバージョンではありません。 version フィールドに適切に書き込まれたとして、このエラーが生じるなら、利用者は、world、kernel またはアプリケーションを再構築する必要があるでしょう。
[ EFAULT]
copyout(9) 関数で、フィールドの 1 つ、いくつか、またはすべてを stat にコピーする問題がありました。

歴史

kld インタフェースは FreeBSD 3.0 ではじめて登場しました。
July 15, 2008 FreeBSD