Skip to content
  • Mauro Carvalho Chehab's avatar
    docs-rst: kernel-doc: fix typedef output in RST format · 82801d06
    Mauro Carvalho Chehab authored
    
    
    When using a typedef function like this one:
    	typedef bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings * t, void * handle);
    
    The Sphinx C domain expects it to create a c:type: reference,
    as that's the way it creates the type references when parsing
    a c:function:: declaration.
    
    So, a declaration like:
    
    	.. c:function:: bool v4l2_valid_dv_timings (const struct v4l2_dv_timings * t, const struct v4l2_dv_timings_cap * cap, v4l2_check_dv_timings_fnc fnc, void * fnc_handle)
    
    Will create a cross reference for :c:type:`v4l2_check_dv_timings_fnc`.
    
    So, when outputting such typedefs in RST format, we need to handle
    this special case, as otherwise it will produce those warnings:
    
    	./include/media/v4l2-dv-timings.h:43: WARNING: c:type reference target not found: v4l2_check_dv_timings_fnc
    	./include/media/v4l2-dv-timings.h:60: WARNING: c:type reference target not found: v4l2_check_dv_timings_fnc
    	./include/media/v4l2-dv-timings.h:81: WARNING: c:type reference target not found: v4l2_check_dv_timings_fnc
    
    So, change the kernel-doc script to produce a RST output for the
    above typedef as:
    	.. c:type:: v4l2_check_dv_timings_fnc
    
    	   **Typedef**: timings check callback
    
    	**Syntax**
    
    	  ``bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings * t, void * handle);``
    
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
    82801d06