日本語 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.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
DISK(9) FreeBSD カーネル開発者マニュアル DISK(9) 名称 disk -- カーネルディスク記憶域 API 書式 #include <geom/geom_disk.h> struct disk * disk_alloc(void); void disk_create(struct disk *disk, int version); void disk_gone(struct disk *disk); void disk_destroy(struct disk *disk); int disk_resize(struct disk *disk, int flags); 解説 ディスク記憶域 API は、GEOM(4) と devfs(5) を含む、他のカーネルコンポーネ ントにデバイスを通知するためにディスクのような記憶域デバイスへのアクセス を提供するカーネルデバイスドライバを可能にします。 各ディスクデバイスは、ディスクデバイスのためのさまざまなパラメータ、デバ イスドライバのためのプライベートなデータ記憶域と同様に、デバイスで実行さ れるかもしれない様々なメソッドのための関数ポインタを含む struct disk 構造 体によって説明されます。さらに、いくつかのフィールドは、デバイスへのアク セスとその統計値を管理する GEOM によって使用するために予約されています。 GEOM には struct disk の所有権があり、デバイスがサービス要求の準備ができ ているとき、ドライバは、disk_alloc() 関数でそれのための記憶域を割り付け て、フィールドに書き込み、disk_create() を呼び出さなければなりません。 ディスクの容量の変更に関して GEOM に通知するために d_mediasize を修正した 後に、ドライバによって disk_resize() を呼び出すことができます。flags フィールドは、M_WAITOK または M_NOWAIT のいずれかに設定されるべきです。 disk_gone() は、それぞれ ENXIO のエラー条件を設定して、ドライブに関連して いるすべてのプロバイダを孤立化します。さらに、エラー条件がプロバイダで設 定されたなら、書き込みのために最後のクローズで再味 (re-taste) を防ぎま す。disk_destroy() の呼び出しの後では、デバイスドライバは、もはや struct disk の内容にアクセスすることができません。 disk_create() 関数は、常に DISK_VERSION に渡さなければならない、2 番目の パラメータ version を取ります。GEOM がサポートされないバージョンに対して コンパイルされているドライバを検出するなら、デバイスを無視して、コンソー ルに警告を印刷 (表示) します。 説明的なフィールド 次のフィールドは、構造体のインスタンスによって説明されるディスクデバイス を識別して、disk_create() へ構造体を提出する前に書き込まなければなりませ ん、そして、その後は変更できません: u_int d_flags とのようなオプション機能か、または記憶域デバイスドライバのサポー トを説明する、記憶域フレームワークを示すオプションのフラグ。現在 サポートされているフラグは、DISKFLAG_OPEN (記憶域フレームワークに よって維持される)、DISKFLAG_CANDELETE (デバイスドライバによって維 持される) と DISKFLAG_CANFLUSHCACHE (デバイスドライバによって維持 される) です。 const char * d_name 記憶域デバイスクラス、例えば、``ahd''、の名前を保持します。この値 は、通常特定のドライバデバイスをユニークに識別します、そして他の デバイスドライバによってサービスされるデバイスと競合してはいけま せん。 u_int d_unit 記憶域デバイスクラスのインスタンス、例えば、``4''、を保持します。 この名前空間は、デバイスドライバによって管理されて、ユニット番号 の割り当ては、プローブ順の優先順位か、またはある場合はトポロジで あるかもしれません。d_name と d_unit 値は共にディスク記憶域デバイ スをユニークに識別します。 ディスクデバイスメソッド 次のフィールドは、実装されるなら、様々なディスクデバイスメソッドを識別し ます: disk_open_t * d_open オプション: ディスクデバイスがオープンされるとき、呼び出されま す。メソッドが提供されないなら、オープンは常に成功します。 disk_close_t * d_close オプション: ディスクデバイスがクローズされるとき、呼び出されま す。エラーコードが返されるかもしれませんが、対応するオープンして いるメソッド呼び出しによってどんな状態のセットアップの呼び出しも 常に終了されるべきです。 disk_strategy_t * d_strategy 強制的: 新しい struct bio がディスクデバイスで開始されるときに、 呼び出されます。 disk_ioctl_t * d_ioctl オプション: I/O 制御操作ががディスクデバイスで開始されるとき、呼 び出されます。セキュリティの理由で、これらの操作はそれらが実行さ れるもの以外の他のデバイスに影響することができないはずであること に注意してください。 dumper_t * d_dump オプション: dumpon(8) によって設定されるなら、この関数は、カーネ ルパニックの後の制限されたシステム状態からシステム RAM のコピーを ディスクに記録するために呼び出されます。 disk_getattr_t * d_getattr オプション: このメソッドが提供されるなら、BIO_GETATTR 要求へのデ フォルトの GEOM 応答を上書きする機会をディスクドライバに与えま す。この関数は、属性が扱われないなら、-1 を返し、属性が扱われるな ら、0 を返し、または g_io_deliver() に渡される errno を返すべきで す。 disk_gone_t * d_gone オプション: このメソッドが提供されるなら、いったん GEOM がそのク リーンアッププロセスを終了したならば、disk_gone() が呼び出された 後に、それが呼び出されます。いったん、このコールバックが呼び出さ れると、GEOM からさらに呼び出しを受け付けないので、そのリソースを すべてを解放するディスクドライバに対して安全です。 強制的なメディアの特性 次のフィールドはディスクデバイスのサイズと精度を識別します。これらの フィールドは、クローズメソッドが呼び出されない場合、ドライバのオープンメ ソッドの返りから安定していた状態のままでなければなりませんが、返る前に オープンメソッドでそれらを変更することは完全に正当です。 u_int d_sectorsize バイト単位のディスクデバイスのセクタサイズ。 off_t d_mediasize バイト単位のディスクデバイスのサイズ。 u_int d_maxsize I/O 要求のバイト単位の最大のサポートサイズ。このサイズより大きい 要求は GEOM によって細かく切られます。 オプションのメディアの特性 これらのオプションフィールドは、ディスクデバイスに関する特別の情報を提供 することができます。フィールド/コンセプトが適用されないなら、これらの フィールドは初期化していけません。これらのフィールドは、クローズメソッド が呼び出されない場合、ドライバのオープンメソッドの返りから安定していた状 態のままでなければなりませんが、返る前にオープンメソッドでそれらを変更す ることは完全に正当です。 u_int d_fwsectors, u_int d_fwheads ファームウェアか BIOS によってディスクデバイスで通知されるセクタ とヘッドの数。これらの値は、ほとんど例外なく偽ですが、いくつかの アーキテクチャでは、ディスクのパーティショニングの正しい計算に必 要です。 u_int d_stripeoffset, u_int d_stripesize これらの 2 つのフィールドは、多くのディスク技術のために自然な性能 限界の幅と位置について説明するために使用することができます。詳細 については src/sys/geom/notes を参照してください。 char d_ident[DISK_IDENT_SIZE] このフィールドは、上に記述された d_getattr メソッドが実装されない なら、または、それが GEOM::ident 属性をサポートしていないなら、 ディスクのシリアル番号を格納するために使用することができ、また、 使用されるべきです。 char d_descr[DISK_IDENT_SIZE] このフィールドは、ディスクベンダと製品の説明を格納するために使用 することができます。 uint16_t d_hba_vendor このフィールドは、ディスクに接続された HBA のための PCI ベンダ ID を格納するために使用することができます。 uint16_t d_hba_device このフィールドは、ディスクに接続された HBA のための PCI デバイス ID を格納するために使用することができます。 uint16_t d_hba_subvendor このフィールドは、ディスクに接続された HBA のための PCI サブベン ダ ID を格納するために使用することができます。 uint16_t d_hba_subdevice このフィールドは、ディスクに接続された HBA のための PCI サブデバ イス ID を格納するために使用することができます。 ドライバのプライベートデータ このフィールドは、ディスクサービスを実装するためのプライベートデータへの ポインタを格納するために、デバイスドライバによって使用されます。 void * d_drv1 プライベテートデータポインタ。このディスクデバイスのためにドライ バ softc 構造体へのポインタを格納するために通常使用されます。 関連項目 GEOM(4), devfs(5) 作者 このマニュアルページは、Robert Watson によって書かれました。 FreeBSD 11.2 October 30, 2012 FreeBSD 11.2