GNU/Linux >> Linux の 問題 >  >> Linux

関数、データ構造、およびヘッダーを文書化するカーネルセクション9のマンページを作成する方法は?

カーネルソースには関数が含まれています およびデータ構造 これは、たとえばpanic.cに文書化されています :

/**
 *  panic - halt the system
 *  @fmt: The text string to print
 *
 *  Display a message, then perform cleanups.
 *
 *  This function never returns.
 */
void panic(const char *fmt, ...)

毎回ソースを調べる代わりに、それらのAPIをマンページとして表示すると便利です。 この既存のドキュメントフレームワークを活用します。

カーネルセクション9のマンページをどのようにインストール/作成しますか (/usr/share/man/man9 )前述の機能とデータ構造を文書化したものはどれですか?

承認された回答:

コンテンツはソースから直接解析されます(これも参照)。 .cファイル:

Linuxカーネルの関数とデータ構造の
一貫性のある抽出可能なドキュメント
を提供するために、Linuxカーネルは
一貫性のある
一貫性のあるドキュメントを採用しています。関数とそのパラメーター、および
構造とそのメンバーを文書化するためのスタイル。

このドキュメントの形式は、kernel-doc形式と呼​​ばれます。
は、このDocumentation/kernel-doc-nano-HOWTO.txtファイルに記載されています。

このスタイルは、
いくつかの簡単な規則を使用して、ソースファイル内にドキュメントを埋め込みます。 scripts / kernel-doc perlスクリプト、Documentation/DocBookの一部のSGML
テンプレート、およびその他のツールは、これらの
規則を理解し、この埋め込まれたドキュメントを
さまざまなドキュメントに抽出するために使用されます。
[…]

開始コメントマーク「/**」はkernel-docコメント用に予約されています。
そのようにマークされたコメントのみがkernel-docスクリプトによって考慮されます。
そしてそのようにマークされたコメントはkernel-docに含まれている必要があります。フォーマット。

つまり、このような形式のコメントのみをこの方法で抽出でき、kernel-docを活用できます。 Perl makeで使用されるスクリプト プロセス:

kernel-doc [ -docbook | -html | -html5 | -text | -man | -list ]
  [ -no-doc-sections ]
  [ -function funcname [ -function funcname ...] ]
  c file(s)s > outputfile

したがって、 mandocsに限定されません。 ターゲット:

インストール後、「make psdocs」、「make pdfdocs」、「make htmldocs」、または
「makemandocs」は、要求された形式でドキュメントをレンダリングします。

カーネルリポジトリ/ソースには、ドライバ固有のテキストファイルもあります。より一般的には、彼らのLinuxマンページプロジェクト man1 man8を介して )をダウンロードできます。最後に、kernel.orgはいくつかの出力ドキュメントも保持しています。

関連:「sudo:apt-get:コマンドが見つかりません。」いくつかのパッケージを削除した後?
Linux
  1. パイプが空であるかどうかを確認し、空でない場合はデータに対してコマンドを実行する方法は?

  2. Linux – Linuxカーネルはどのようにしてデバイスのメジャー番号とマイナー番号を認識しますか?

  3. Linux –どのモジュールがカーネルを汚染しているかを判断する方法は?

  1. ビッグデータの挑戦と約束

  2. Linux カーネルの可能性が高い/可能性が低いマクロはどのように機能し、その利点は何ですか?

  3. GDB と QEMU を使用して Linux カーネルをデバッグするには?

  1. 一致する各行の上下の行をgrepで印刷するにはどうすればよいですか?

  2. SVNパッチを作成して適用するには?

  3. bash スクリプトを作成する方法、または vi を開いてドキュメントを編集する方法を自動化するには?