On Wed, Jul 29, 2020 at 05:33:41PM +0200, peterz@xxxxxxxxxxxxx wrote: > On Wed, Jul 29, 2020 at 03:55:07PM +0100, Matthew Wilcox wrote: > > On Wed, Jul 29, 2020 at 03:52:51PM +0200, Peter Zijlstra wrote: > > > Manual repetition is boring and error prone. > > > > Yes, but generated functions are hard to grep for, and I'm pretty sure > > that kernel-doc doesn't know how to expand macros into comments that it > > can then extract documentation from. > > > > I've been thinking about how to cure this (mostly in the context > > of page-flags.h). I don't particularly like the C preprocessor, but > > m4 is worse and defining our own preprocessing language seems like a > > terrible idea. > > > > So I was thinking about moving the current contents of page-flags.h > > to include/src/page-flags.h, making linux/page-flags.h depend on > > src/page-flags.h and run '$(CPP) -C' to generate it. I've been a little > > busy recently and haven't had time to do more than muse about this, but > > I think it might make sense for some of our more heavily macro-templated > > header files. > > Use ctags and add to scripts/tags.sh. I'll make the below into a proper patch. --- diff --git a/scripts/tags.sh b/scripts/tags.sh index 4e18ae5282a6..63b21881a873 100755 --- a/scripts/tags.sh +++ b/scripts/tags.sh @@ -211,6 +211,8 @@ regex_c=( '/\<DEVICE_ATTR_\(RW\|RO\|WO\)(\([[:alnum:]_]\+\)/dev_attr_\2/' '/\<DRIVER_ATTR_\(RW\|RO\|WO\)(\([[:alnum:]_]\+\)/driver_attr_\2/' '/\<\(DEFINE\|DECLARE\)_STATIC_KEY_\(TRUE\|FALSE\)\(\|_RO\)(\([[:alnum:]_]\+\)/\4/' + '/^SEQCOUNT_LOCKTYPE(\([^,]*\),[[:space:]]*\([^,]*\),[^)]*)/seqcount_\2_t/' + '/^SEQCOUNT_LOCKTYPE(\([^,]*\),[[:space:]]*\([^,]*\),[^)]*)/seqcount_\2_init/' ) regex_kconfig=( '/^[[:blank:]]*\(menu\|\)config[[:blank:]]\+\([[:alnum:]_]\+\)/\2/'