Re: [PATCH] doc-rst: kernel-doc: fix handling of address_space tags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 22.07.2016 um 16:46 schrieb Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>:

> The RST cpp:function handler is very pedantic: it doesn't allow any
> macros like __user on it:
> 
> 	Documentation/media/kapi/dtv-core.rst:28: WARNING: Error when parsing function declaration.
> 	If the function has no return type:
> 	  Error in declarator or parameters and qualifiers
> 	  Invalid definition: Expecting "(" in parameters_and_qualifiers. [error at 8]
> 	    ssize_t dvb_ringbuffer_pkt_read_user (struct dvb_ringbuffer * rbuf, size_t idx, int offset, u8 __user * buf, size_t len)
> 	    --------^
> 	If the function has a return type:
> 	  Error in declarator or parameters and qualifiers
> 	  If pointer to member declarator:
> 	    Invalid definition: Expected '::' in pointer to member (function). [error at 37]
> 	      ssize_t dvb_ringbuffer_pkt_read_user (struct dvb_ringbuffer * rbuf, size_t idx, int offset, u8 __user * buf, size_t len)
> 	      -------------------------------------^
> 	  If declarator-id:
> 	    Invalid definition: Expecting "," or ")" in parameters_and_qualifiers, got "*". [error at 102]
> 	      ssize_t dvb_ringbuffer_pkt_read_user (struct dvb_ringbuffer * rbuf, size_t idx, int offset, u8 __user * buf, size_t len)
> 	      ------------------------------------------------------------------------------------------------------^
> 

May I'am wrong, but as far as I know, we get this error only 
if we are using the CPP-domain. Since the kernel-doc parser
uses the C-domain, we should not have those error messages
(tested here with sphinx 1.4).

That said, I don't see the need to change the kernel-doc parser
eleminating the address_space tags.

Or did I missed some point?

-- Markus --

> So, we have to remove it from the function prototype.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>
> ---
> scripts/kernel-doc | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index 41eade332307..4394746cc1aa 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -1848,6 +1848,10 @@ sub output_function_rst(%) {
> 	}
> 	$count++;
> 	$type = $args{'parametertypes'}{$parameter};
> +
> +	# RST doesn't like address_space tags at function prototypes
> +	$type =~ s/__(user|kernel|iomem|percpu|pmem|rcu)\s*//;
> +
> 	if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) {
> 	    # pointer-to-function
> 	    print $1 . $parameter . ") (" . $2;
> -- 
> 2.7.4
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux