日本語 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
G_GEOM(9) FreeBSD カーネル開発者マニュアル G_GEOM(9)
名称
g_new_geomf, g_destroy_geom -- geom 管理
書式
#include <geom/geom.h>
struct g_geom *
g_new_geomf(struct g_class *mp, const char *fmt, ...);
void
g_destroy_geom(struct g_geom *gp);
解説
geom (``GEOM'' での ``geom'' と混同しなでください) は GEOM クラスのインス
タンスです。例えば: 代表的な i386 FreeBSD システムでは、各ディスクにクラ
ス MBR の 1 つの geom があります。geom の名前は実際には重要ではありませ
ん、それは XML ダンプとデバッグ目的に使用されるだけです。同じ名前がある多
くの geom が存在することができます。
g_new_geomf() 関数は、クラス mp のインスタンスになる新しい geom を作成し
ます。geom の名前は引数の残りから printf(3) のような方法で作成されます。
g_destroy_geom() 関数は直ちに与えられた geom を破壊し、すべての関連する保
留中 (pending) のイベントをキャンセルします。
g_geom 構造体は、この geom に関連するどんなプロバイダまたはコンシューマを
作成する前を除いて (すべてが必要であるというわけではありません)、geom の
作成の後に呼び出し側によって設定されるべきであるフィールドを含んでいます:
g_start_t * start
I/O 処理に使用される関数へのポインタ。
g_spoiled_t * spoiled
コンシューマスポイリング (仕損じ) に使用される関数へのポイ
ンタ。
g_dumpconf_t * dumpconf
XML 形式ダンプにおける設定に使用される関数へのポインタ。
g_access_t * access
アクセス制御に使用される関数へのポインタ。
g_orphan_t * orphan
親のないコンシューマに関する情報を提供するために使用される
関数へのポインタ。
g_ioctl_t * ioctl
ioctl 要求の取り扱いに使用される関数へのポインタ。
void * softc
プライベート使用のためのフィールド。
制限/条件
この geom のプロバイダを使用しようとしているなら、利用者の geom のフィー
ルド start を設定しなければなりません。
利用者の geom でコンシューマを使用する予定があるなら、フィールド orphan
と access を設定しなければなりません。
g_new_geomf():
クラス mp は (GEOM で登録された) 有効なものでなければなりません。
トポロジロックは保持されなければなりません。
g_destroy_geom():
geom はどんなプロバイダも保有することができません。
geom はどんなコンシューマも保有することができません。
トポロジロックは保持されなければなりません。
戻り値
g_new_geomf() 関数は新しく作成された geom へのポインタを返します。
使用例
例の geom を作成します。
static void
g_example_start(struct bio *bp)
{
[...]
}
static void
g_example_orphan(struct g_consumer *cp)
{
g_topology_assert();
[...]
}
static void
g_example_spoiled(struct g_consumer *cp)
{
g_topology_assert();
[...]
}
static int
g_example_access(struct g_provider *pp, int dr, int dw, int de)
{
[...]
}
static struct g_geom *
create_example_geom(struct g_class *myclass)
{
struct g_geom *gp;
g_topology_lock();
gp = g_new_geomf(myclass, "example_geom");
g_topology_unlock();
gp->start = g_example_start;
gp->orphan = g_example_orphan;
gp->spoiled = g_example_spoiled;
gp->access = g_example_access;
gp->softc = NULL;
return (gp);
}
static int
destroy_example_geom(struct g_geom *gp)
{
g_topology_lock();
if (!LIST_EMPTY(&gp->provider) ||
!LIST_EMPTY(&gp->consumer)) {
g_topology_unlock();
return (EBUSY);
}
g_destroy_geom(gp);
g_topology_unlock();
return (0);
}
関連項目
geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9), g_bio(9),
g_consumer(9), g_data(9), g_event(9), g_provider(9),
g_provider_by_name(9), g_wither_geom(9)
作者
このマニュアルページは、Pawel Jakub Dawidek <pjd@FreeBSD.org> によって書
かれました。
FreeBSD 13.2 April 24, 2016 FreeBSD 13.2