summaryrefslogtreecommitdiff
path: root/scripts/lib/abi/abi_parser.py
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2025-02-10 13:18:08 +0300
committerJonathan Corbet <corbet@lwn.net>2025-02-10 21:19:57 +0300
commit98a4324a8b7bbe433483c90524026be0ccc9ffa8 (patch)
tree0add2f3ed09ea974324049890283eec15704f7aa /scripts/lib/abi/abi_parser.py
parent2a21d80dfb4135b4766d8ff3231a3ea1c19bcc83 (diff)
downloadlinux-98a4324a8b7bbe433483c90524026be0ccc9ffa8.tar.xz
scripts/get_abi.pl: add support to parse ABI README file
The Documentation/ABI/README file is currently outside the documentation tree. Yet, it may still provide some useful information. Add it to the documentation parsing. As a plus, this avoids a warning when detecting missing cross-references. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Link: https://lore.kernel.org/r/f1285dedfe4d0eb0f0af34f6a68bee6fde36dd7d.1739182025.git.mchehab+huawei@kernel.org
Diffstat (limited to 'scripts/lib/abi/abi_parser.py')
-rw-r--r--scripts/lib/abi/abi_parser.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/scripts/lib/abi/abi_parser.py b/scripts/lib/abi/abi_parser.py
index b20d5c9d920e..6fac461d794c 100644
--- a/scripts/lib/abi/abi_parser.py
+++ b/scripts/lib/abi/abi_parser.py
@@ -263,6 +263,16 @@ class AbiParser:
if content:
self.warn(fdata, "Unexpected content", line)
+ def parse_readme(self, nametag, fname):
+ """Parse ABI README file"""
+
+ with open(fname, "r", encoding="utf8", errors="backslashreplace") as fp:
+ nametag["description"] = "```\n"
+ for line in fp:
+ nametag["description"] += " " + line
+
+ nametag["description"] += "```\n"
+
def parse_file(self, fname, path, basename):
"""Parse a single file"""
@@ -309,6 +319,10 @@ class AbiParser:
if self.debug & AbiDebug.WHAT_OPEN:
self.log.debug("Opening file %s", fname)
+ if basename == "README":
+ self.parse_readme(fdata.nametag, fname)
+ return
+
with open(fname, "r", encoding="utf8", errors="backslashreplace") as fp:
for line in fp:
fdata.ln += 1
@@ -344,9 +358,6 @@ class AbiParser:
basename = os.path.basename(name)
- if basename == "README":
- continue
-
if basename.startswith("."):
continue
@@ -448,8 +459,12 @@ class AbiParser:
continue
if filter_path:
- if v.get("path") != filter_path:
- continue
+ if filter_path == "README":
+ if not names[0].endswith("README"):
+ continue
+ else:
+ if v.get("path") != filter_path:
+ continue
msg = ""