Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63ac8517 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet
Browse files

docs: kernel-doc.rst: better describe kernel-doc arguments



Add a new section to describe kernel-doc arguments,
adding examples about how identation should happen, as failing
to do that causes Sphinx to do the wrong thing.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 012e93cb
Loading
Loading
Loading
Loading
+41 −3
Original line number Diff line number Diff line
@@ -112,16 +112,17 @@ Example kernel-doc function comment::

  /**
   * foobar() - Brief description of foobar.
   * @arg: Description of argument of foobar.
   * @argument1: Description of parameter argument1 of foobar.
   * @argument2: Description of parameter argument2 of foobar.
   *
   * Longer description of foobar.
   *
   * Return: Description of return value of foobar.
   */
  int foobar(int arg)
  int foobar(int argument1, char *argument2)

The format is similar for documentation for structures, enums, paragraphs,
etc. See the sections below for details.
etc. See the sections below for specific details of each type.

The kernel-doc structure is extracted from the comments, and proper `Sphinx C
Domain`_ function and type descriptions with anchors are generated for them. The
@@ -130,6 +131,43 @@ cross-references. See below for details.

.. _Sphinx C Domain: http://www.sphinx-doc.org/en/stable/domains.html


Parameters and member arguments
-------------------------------

The kernel-doc function comments describe each parameter to the function and
function typedefs or each member of struct/union, in order, with the
``@argument:`` descriptions. For each non-private member argument, one
``@argument`` definition is needed.

The ``@argument:`` descriptions begin on the very next line following
the opening brief function description line, with no intervening blank
comment lines.

The ``@argument:`` descriptions may span multiple lines.

.. note::

   If the ``@argument`` description has multiple lines, the continuation
   of the description should be starting exactly at the same column as
   the previous line, e. g.::

      * @argument: some long description
      *       that continues on next lines

   or::

      * @argument:
      *		some long description
      *		that continues on next lines

If a function or typedef parameter argument is ``...`` (e. g. a variable
number of arguments), its description should be listed in kernel-doc
notation as::

      * @...: description


Highlights and cross-references
-------------------------------