mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 19:43:43 -04:00
kernel-doc: add support to handle DEFINE_ variables
Improve the parser and output plugin to work with macros, adding support for the common pattern of using DEFINE_* to create variables. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <757a45100cfc493984574ff780aa9d90506eecb4.1765894964.git.mchehab+huawei@kernel.org>
This commit is contained in:
committed by
Jonathan Corbet
parent
1045ec382c
commit
bdd1cf8784
@@ -949,12 +949,27 @@ class KernelDoc:
|
||||
# Store the full prototype before modifying it
|
||||
#
|
||||
full_proto = proto
|
||||
declaration_name = None
|
||||
|
||||
#
|
||||
# Handle macro definitions
|
||||
#
|
||||
macro_prefixes = [
|
||||
KernRe(r"DEFINE_[\w_]+\s*\(([\w_]+)\)"),
|
||||
]
|
||||
|
||||
for r in macro_prefixes:
|
||||
match = r.search(proto)
|
||||
if match:
|
||||
declaration_name = match.group(1)
|
||||
break
|
||||
|
||||
#
|
||||
# Drop comments and macros to have a pure C prototype
|
||||
#
|
||||
for search, sub in sub_prefixes:
|
||||
proto = search.sub(sub, proto)
|
||||
if not declaration_name:
|
||||
for r, sub in sub_prefixes:
|
||||
proto = r.sub(sub, proto)
|
||||
|
||||
proto = proto.rstrip()
|
||||
|
||||
@@ -968,14 +983,16 @@ class KernelDoc:
|
||||
return
|
||||
|
||||
var_type = r.group(0)
|
||||
declaration_name = r.group(1)
|
||||
|
||||
if not declaration_name:
|
||||
declaration_name = r.group(1)
|
||||
|
||||
default_val = r.group(2)
|
||||
if default_val:
|
||||
default_val = default_val.lstrip("=").strip()
|
||||
|
||||
self.output_declaration("var", declaration_name,
|
||||
full_proto=full_proto,
|
||||
var_type=var_type,
|
||||
default_val=default_val,
|
||||
purpose=self.entry.declaration_purpose)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user