scripts/kernel-doc update

From: Lee Jones
Date: Tue Jun 30 2020 - 05:36:46 EST


Good morning Jon, et al.,

Would someone be kind enough to update scripts/kernel-doc to elegantly
handle complex bitmap expressions in structures please? Presently
only simple syntax is handled. Something like:

struct foo {
u8 arg : 10;
};

However, the bitmap is sometimes derived from some pre-processed
define or calculated. Similar to the following examples.

Example 1:
---------

File: drivers/misc/vmw_balloon.c

struct vmballoon_batch_entry {
u64 status : 5;
u64 reserved : PAGE_SHIFT - 5;
u64 pfn : 52;
} __packed;

Example 2:
---------

File: include/math-emu/single.h

union _FP_UNION_S
{
float flt;
struct {
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned sign : 1;
unsigned exp : _FP_EXPBITS_S;
unsigned frac : _FP_FRACBITS_S - (_FP_IMPLBIT_S != 0);
#else
unsigned frac : _FP_FRACBITS_S - (_FP_IMPLBIT_S != 0);
unsigned exp : _FP_EXPBITS_S;
unsigned sign : 1;
#endif
} bits __attribute__((packed));
};

The first example causes this warning:

drivers/misc/vmw_balloon.c:262: warning: Function parameter or member '5' not described in 'vmballoon_batch_entry'

The second doesn't use kerneldoc, but is an example of a complex, but
totally possible/legitimate use-case.

Would it be feasible to make to make the regex which handles bitmaps
greedy up until the ';'? Or perhaps someone can come up with
something more refined that would solve the problem.

--
Lee Jones [æçæ]
Senior Technical Lead - Developer Services
Linaro.org â Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog