日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
DECLARE_GEOM_CLASS(9) FreeBSD カーネル開発者マニュアル DECLARE_GEOM_CLASS(9)
名称
DECLARE_GEOM_CLASS -- GEOM クラス宣言マクロ
書式
#include <geom/geom.h>
DECLARE_GEOM_CLASS(class, mod_name);
解説
DECLARE_GEOM_CLASS() マクロは GEOM に GEOM クラスを登録します。GEOM のク
ラス自体は 1 つの特定の種類の変換を実装します。典型的な例は次の通りです:
MBR ディスクパーティション、BSD disklabel と RAID5 クラスです。
DECLARE_GEOM_CLASS() はコンパイルされて、kld(4) モジュール GEOM クラスと
してロードするために使用することができます、そして、それはクラス登録のた
めの唯一の公式な方法です。
DECLARE_GEOM_CLASS() への引数は、次の通りです:
class GEOM のクラスを説明する g_class 構造体。
mod_name カーネルモジュール名 (クラス名でない!)。
構造体 g_class はクラスを説明するデータを含みます。それらは次の通りです:
const char * name
クラス名。
g_taste_t * taste
テイスト (taste) イベント操作のために使用される関数へのポイ
ンタ。それが NULL でないなら、それは 3 つの状況で呼び出され
ます:
- クラスの活性化のときに、すべての既存のプロバイダはテイ
スト (taste) を提供します。
- 新しいプロバイダを作成するとき、テイスト (taste) を提供
します。
- プロバイダへの最後の書き込みアクセスがクローズされた後
に、再テイスト (retaste) を提供します (最初に、書き込み
オープンイベント ``spoil'' が送信されます)。
g_config_t * config
それ以上このフィールドを使用しないでください、機能的に
ctlreq フィールドに取り替えられました。
g_ctl_req_t * ctlreq
ユーザランドアプリケーションから操作イベントのために使用さ
れる関数へのポインタ。
g_init_t * init
クラス登録直後に呼び出される関数へのポインタ。
g_fini_t * fini
クラスの登録取り消しの直前に呼び出される関数へのポインタ。
g_ctl_destroy_geom_t * destroy_geom
クラスのアンロードのときにあらゆる geom のために呼び出され
る関数へのポインタ。このフィールドが設定されていないなら、
クラスをアンロードすることはできません。
name フィールドだけが必要です。残りはオプションです。
制限/条件
g_class のフィールドは、C99 スタイルフィールド指定 (下記の example_class
の初期化を参照) を使用して常に初期化されるべきです。
使用例
クラス宣言の例。
static struct g_geom *
g_example_taste(struct g_class *mp, struct g_provider *pp,
int flags __unused)
{
g_topology_assert();
[...]
}
static void
g_example_ctlreq(struct gctl_req *req, struct g_class *cp,
char const *verb)
{
[...]
}
static int
g_example_destroy_geom(struct gctl_req *req, struct g_class *cp,
struct g_geom *gp)
{
g_topology_assert();
[...]
}
static void
g_example_init(struct g_class *mp)
{
[...]
}
static void
g_example_fini(struct g_class *mp)
{
[...]
}
struct g_class example_class = {
.name = "EXAMPLE",
.taste = g_example_taste,
.ctlreq = g_example_ctlreq,
.init = g_example_init,
.fini = g_example_fini,
.destroy_geom = g_example_destroy_geom
};
DECLARE_GEOM_CLASS(example_class, g_example);
関連項目
geom(4), g_attach(9), g_bio(9), g_consumer(9), g_data(9), g_event(9),
g_geom(9), g_provider(9), g_provider_by_name(9), g_wither_geom(9)
作者
このマニュアルページは、Pawel Jakub Dawidek <pjd@FreeBSD.org> によって書
かれました。
FreeBSD 13.2 August 13, 2007 FreeBSD 13.2