diff options
author | Randy Dunlap <rdunlap@infradead.org> | 2024-01-06 17:24:00 -0800 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2024-01-30 13:31:09 -0700 |
commit | 91a3d6be99e63f6b0a4b2983aef20bd3da2d1a74 (patch) | |
tree | 7c1a15fe1cf996a30ec1b08896c123dafd26cc87 /Documentation/doc-guide/kernel-doc.rst | |
parent | d2a70e28ef738765f9226731dfdb3b6c06565456 (diff) | |
download | linux-stable-91a3d6be99e63f6b0a4b2983aef20bd3da2d1a74.tar.gz linux-stable-91a3d6be99e63f6b0a4b2983aef20bd3da2d1a74.tar.bz2 linux-stable-91a3d6be99e63f6b0a4b2983aef20bd3da2d1a74.zip |
doc-guide: kernel-doc: tell about object-like macros
Since 2014 kernel-doc has supported describing object-like macros
but it is not documented anywhere. I should have required some
documentation for it when I merged the patch. :(
There are currently only 3 uses of this (all in DRM headers, in
include/drm/*.h).
Add object-like macro kernel-doc documentation now so that more may
know about it and use it.
Fixes: cbb4d3e6510b ("scripts/kernel-doc: handle object-like macros")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20240107012400.32587-1-rdunlap@infradead.org
Diffstat (limited to 'Documentation/doc-guide/kernel-doc.rst')
-rw-r--r-- | Documentation/doc-guide/kernel-doc.rst | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Documentation/doc-guide/kernel-doc.rst b/Documentation/doc-guide/kernel-doc.rst index 6ad72ac6861b..d6f7efefea42 100644 --- a/Documentation/doc-guide/kernel-doc.rst +++ b/Documentation/doc-guide/kernel-doc.rst @@ -341,6 +341,51 @@ Typedefs with function prototypes can also be documented:: */ typedef void (*type_name)(struct v4l2_ctrl *arg1, void *arg2); +Object-like macro documentation +------------------------------- + +Object-like macros are distinct from function-like macros. They are +differentiated by whether the macro name is immediately followed by a +left parenthesis ('(') for function-like macros or not followed by one +for object-like macros. + +Function-like macros are handled like functions by ``scripts/kernel-doc``. +They may have a parameter list. Object-like macros have do not have a +parameter list. + +The general format of an object-like macro kernel-doc comment is:: + + /** + * define object_name - Brief description. + * + * Description of the object. + */ + +Example:: + + /** + * define MAX_ERRNO - maximum errno value that is supported + * + * Kernel pointers have redundant information, so we can use a + * scheme where we can return either an error code or a normal + * pointer with the same return value. + */ + #define MAX_ERRNO 4095 + +Example:: + + /** + * define DRM_GEM_VRAM_PLANE_HELPER_FUNCS - \ + * Initializes struct drm_plane_helper_funcs for VRAM handling + * + * This macro initializes struct drm_plane_helper_funcs to use the + * respective helper functions. + */ + #define DRM_GEM_VRAM_PLANE_HELPER_FUNCS \ + .prepare_fb = drm_gem_vram_plane_helper_prepare_fb, \ + .cleanup_fb = drm_gem_vram_plane_helper_cleanup_fb + + Highlights and cross-references ------------------------------- |