mirror of
https://github.com/mborgerson/xemu.git
synced 2026-03-19 16:24:56 +00:00
We last synced our copy of kerneldoc with Linux back in 2020. In the interim, upstream has entirely rewritten the script in Python, and the new Python version is split into a main script plus some libraries in the kernel's scripts/lib/kdoc. Import all these files. These are the versions as of kernel commit 0cc53520e68be, with no local changes. We use the same lib/kdoc/ directory as the kernel does here, so we can avoid having to edit the top-level script just to adjust a pathname, even though it is probably not the naming we would have picked if this was a purely QEMU script. The Sphinx conf.py still points at the Perl version of the script, so this Python code will not be invoked to build the docs yet. NB: checkpatch complains about many things in this commit, including the use of "GPL-2.0" rather than "GPL-2.0-only" in the SPDX tags, but since this is a third party import we can ignore this. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Message-id: 20250814171324.1614516-4-peter.maydell@linaro.org
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# A class that will, eventually, encapsulate all of the parsed data that we
|
|
# then pass into the output modules.
|
|
#
|
|
|
|
class KdocItem:
|
|
def __init__(self, name, type, start_line, **other_stuff):
|
|
self.name = name
|
|
self.type = type
|
|
self.declaration_start_line = start_line
|
|
self.sections = {}
|
|
self.sections_start_lines = {}
|
|
self.parameterlist = []
|
|
self.parameterdesc_start_lines = []
|
|
self.parameterdescs = {}
|
|
self.parametertypes = {}
|
|
#
|
|
# Just save everything else into our own dict so that the output
|
|
# side can grab it directly as before. As we move things into more
|
|
# structured data, this will, hopefully, fade away.
|
|
#
|
|
self.other_stuff = other_stuff
|
|
|
|
def get(self, key, default = None):
|
|
return self.other_stuff.get(key, default)
|
|
|
|
def __getitem__(self, key):
|
|
return self.get(key)
|
|
|
|
#
|
|
# Tracking of section and parameter information.
|
|
#
|
|
def set_sections(self, sections, start_lines):
|
|
self.sections = sections
|
|
self.section_start_lines = start_lines
|
|
|
|
def set_params(self, names, descs, types, starts):
|
|
self.parameterlist = names
|
|
self.parameterdescs = descs
|
|
self.parametertypes = types
|
|
self.parameterdesc_start_lines = starts
|