scripts/kernel-doc: handle function pointer prototypes
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 23 Jun 2020 07:09:02 +0000 (09:09 +0200)
committerJonathan Corbet <corbet@lwn.net>
Fri, 26 Jun 2020 16:01:00 +0000 (10:01 -0600)
There are some function pointer prototypes inside the net
includes, like this one:

int (*pcs_config)(struct phylink_config *config, unsigned int mode,
  phy_interface_t interface, const unsigned long *advertising);

There's nothing wrong using it with kernel-doc, but we need to
add a rule for it to parse such kind of prototype.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/fec520dd731a273013ae06b7653a19c7d15b9562.1592895969.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/kernel-doc

index 43b8312363a583a517645949b3383084c2c7cbd6..e991d7f961e9f1d4b0b5675be2ef7a94051c3b37 100755 (executable)
@@ -1771,6 +1771,11 @@ sub process_proto_function($$) {
        $prototype =~ s@/\*.*?\*/@@gos; # strip comments.
        $prototype =~ s@[\r\n]+@ @gos; # strip newlines/cr's.
        $prototype =~ s@^\s+@@gos; # strip leading spaces
+
+        # Handle prototypes for function pointers like:
+        # int (*pcs_config)(struct foo)
+       $prototype =~ s@^(\S+\s+)\(\s*\*(\S+)\)@$1$2@gos;
+
        if ($prototype =~ /SYSCALL_DEFINE/) {
                syscall_munge();
        }