From b09435ee59638510886ecb2df48c881fb58bd109 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 5 May 2023 14:41:19 +0200 Subject: interfacedoc: Generate type documentation --- config.yml | 6 + rtemsspec/interface.py | 4 +- rtemsspec/interfacedoc.py | 110 +++++++++- rtemsspec/sphinxcontent.py | 60 +++++- rtemsspec/tests/spec-interface/asm.yml | 2 +- rtemsspec/tests/spec-interface/c/if/uint32_t.yml | 2 +- .../tests/spec-interface/command-line-other.yml | 2 +- rtemsspec/tests/spec-interface/command-line.yml | 2 +- rtemsspec/tests/spec-interface/constraint-a.yml | 2 +- .../tests/spec-interface/constraint/other.yml | 9 + .../spec-interface/constraint/type-opaque.yml | 9 + rtemsspec/tests/spec-interface/define-a.yml | 2 +- rtemsspec/tests/spec-interface/define-b.yml | 2 +- rtemsspec/tests/spec-interface/define-c.yml | 2 +- rtemsspec/tests/spec-interface/define.yml | 2 +- rtemsspec/tests/spec-interface/domain-abc.yml | 2 +- rtemsspec/tests/spec-interface/domain-c.yml | 2 +- .../tests/spec-interface/domain-command-line.yml | 2 +- rtemsspec/tests/spec-interface/enum.yml | 2 +- rtemsspec/tests/spec-interface/enum2.yml | 2 +- rtemsspec/tests/spec-interface/enum3.yml | 2 +- rtemsspec/tests/spec-interface/enum4.yml | 2 +- rtemsspec/tests/spec-interface/enumerator-0.yml | 2 +- rtemsspec/tests/spec-interface/enumerator-1.yml | 2 +- rtemsspec/tests/spec-interface/enumerator-2.yml | 2 +- rtemsspec/tests/spec-interface/enumerator-a.yml | 2 +- rtemsspec/tests/spec-interface/enumerator-b.yml | 2 +- rtemsspec/tests/spec-interface/float_t.yml | 2 +- rtemsspec/tests/spec-interface/forward-decl.yml | 2 +- rtemsspec/tests/spec-interface/func.yml | 2 +- rtemsspec/tests/spec-interface/func2.yml | 2 +- rtemsspec/tests/spec-interface/func3.yml | 2 +- rtemsspec/tests/spec-interface/func4.yml | 2 +- rtemsspec/tests/spec-interface/func5.yml | 2 +- rtemsspec/tests/spec-interface/func6.yml | 2 +- rtemsspec/tests/spec-interface/ga.yml | 2 +- rtemsspec/tests/spec-interface/gb.yml | 2 +- rtemsspec/tests/spec-interface/gc.yml | 2 +- rtemsspec/tests/spec-interface/ge.yml | 2 +- rtemsspec/tests/spec-interface/gf.yml | 2 +- rtemsspec/tests/spec-interface/h.yml | 2 +- rtemsspec/tests/spec-interface/h2.yml | 2 +- rtemsspec/tests/spec-interface/h3.yml | 2 +- rtemsspec/tests/spec-interface/h4.yml | 2 +- .../tests/spec-interface/irqamp-timestamp.yml | 2 +- rtemsspec/tests/spec-interface/irqamp.yml | 2 +- rtemsspec/tests/spec-interface/macro.yml | 2 +- rtemsspec/tests/spec-interface/macro2.yml | 2 +- rtemsspec/tests/spec-interface/macro3.yml | 2 +- rtemsspec/tests/spec-interface/math.yml | 2 +- rtemsspec/tests/spec-interface/option.yml | 2 +- .../spec-interface/register-block-no-size.yml | 2 +- rtemsspec/tests/spec-interface/s.yml | 2 +- rtemsspec/tests/spec-interface/s2.yml | 30 +++ rtemsspec/tests/spec-interface/smp.yml | 2 +- rtemsspec/tests/spec-interface/stdint.yml | 2 +- rtemsspec/tests/spec-interface/td.yml | 2 +- rtemsspec/tests/spec-interface/td3.yml | 2 +- rtemsspec/tests/spec-interface/u.yml | 2 +- rtemsspec/tests/spec-interface/uint32_t.yml | 2 +- rtemsspec/tests/spec-interface/var.yml | 2 +- rtemsspec/tests/spec-sphinx/s.yml | 14 ++ rtemsspec/tests/test_content_sphinx.py | 1 + rtemsspec/tests/test_interface.py | 30 ++- rtemsspec/tests/test_interfacedoc.py | 224 +++++++++++++++++++-- 65 files changed, 517 insertions(+), 88 deletions(-) create mode 100644 rtemsspec/tests/spec-interface/constraint/other.yml create mode 100644 rtemsspec/tests/spec-interface/constraint/type-opaque.yml create mode 100644 rtemsspec/tests/spec-interface/s2.yml create mode 100644 rtemsspec/tests/spec-sphinx/s.yml diff --git a/config.yml b/config.yml index 975f9f6d..82ef9bd4 100644 --- a/config.yml +++ b/config.yml @@ -195,6 +195,12 @@ interface-documentation: - directives-target: modules/rtems-docs/c-user/rate-monotonic/directives.rst group: /rtems/ratemon/if/group introduction-target: modules/rtems-docs/c-user/rate-monotonic/introduction.rst + types: + domains: + - /if/domain + groups: + - /rtems/type/if/group + target: modules/rtems-docs/c-user/rtems_data_types.rst spec-verification: root-type: /spec/root spec-documentation: diff --git a/rtemsspec/interface.py b/rtemsspec/interface.py index 6a11f1c3..10ecf40a 100644 --- a/rtemsspec/interface.py +++ b/rtemsspec/interface.py @@ -267,10 +267,12 @@ def _get_register_name(definition: Dict[str, Any]) -> Tuple[str, str]: _CONSTRAINT_TARGET = { - "interface/function": "this directive", "interface/define": "this constant", + "interface/function": "this directive", "interface/macro": "this directive", + "interface/struct": "this structure", "interface/typedef": "functions of this type", + "interface/union": "this union", "interface/variable": "this object", } diff --git a/rtemsspec/interfacedoc.py b/rtemsspec/interfacedoc.py index 02242227..b9d52845 100644 --- a/rtemsspec/interfacedoc.py +++ b/rtemsspec/interfacedoc.py @@ -28,7 +28,7 @@ This module provides functions for the generation of interface documentation. import functools import os -from typing import Any, Dict, List, Tuple +from typing import Any, Dict, List, Optional, Tuple from rtemsspec.content import CContent, get_value_compound, \ get_value_forward_declaration, get_value_unspecified_type @@ -128,6 +128,14 @@ def _add_definition(content: CContent, mapper: ItemMapper, item: Item, add_definition(content, mapper, item, definition) +def _add_text(content: SphinxContent, mapper: ItemMapper, item: Item, + key: str) -> None: + text = item[key] + if text: + content.add(f".. rubric:: {key.upper()}:") + content.wrap(mapper.substitute(text)) + + def _document_directive(content: SphinxContent, mapper: ItemMapper, code_mapper: CodeMapper, item: Item, enabled: List[str]) -> None: @@ -147,9 +155,7 @@ def _document_directive(content: SphinxContent, mapper: ItemMapper, f"``{sanitize_name(param['name'])}``", mapper.substitute(f"This parameter {description}"), wrap=True) - if item["description"]: - content.add_rubric("DESCRIPTION:") - content.wrap(mapper.substitute(item["description"])) + _add_text(content, mapper, item, "description") ret = item["return"] if ret: content.add_rubric("RETURN VALUES:") @@ -163,9 +169,7 @@ def _document_directive(content: SphinxContent, mapper: ItemMapper, retval["description"]), wrap=True) content.wrap(mapper.substitute(ret["return"])) - if item["notes"]: - content.add_rubric("NOTES:") - content.wrap(mapper.substitute(item["notes"])) + _add_text(content, mapper, item, "notes") constraints = [ mapper.substitute(parent["text"], parent) for parent in item.parents("constraint") if parent.is_enabled(enabled) @@ -227,6 +231,96 @@ def _directive_key(order: List[Item], item: Item) -> Tuple[int, str]: return (index, item.uid) +def _add_type_definition(definition: Any, mapper: SphinxInterfaceMapper, + content: SphinxContent) -> None: + text = definition["brief"].strip() + if definition["description"]: + text += "\n" + definition["description"].strip() + content.add_definition_item(definition["name"], + mapper.substitute(text), + wrap=True) + + +def _type_compound(item: Item, mapper: SphinxInterfaceMapper, + content: SphinxContent) -> None: + content.add(".. rubric:: MEMBERS:") + for member in item["definition"]: + _add_type_definition(member["default"], mapper, content) + + +def _type_enum(item: Item, mapper: SphinxInterfaceMapper, + content: SphinxContent) -> None: + content.add(".. rubric:: ENUMERATORS:") + for enumerator in item.parents("interface-enumerator"): + _add_type_definition(enumerator, mapper, content) + + +def _type_nop(_item: Item, _mapper: SphinxInterfaceMapper, + _content: SphinxContent) -> None: + pass + + +_TYPE_GENERATORS = { + "interface/enum": _type_enum, + "interface/struct": _type_compound, + "interface/typedef": _type_nop, + "interface/union": _type_compound +} + + +def _gather_types(item: Item, types: List[Item]) -> None: + for child in item.children("interface-placement"): + if child.type in _TYPE_GENERATORS: + types.append(child) + _gather_types(child, types) + + +def _is_opaque_type(item: Item) -> Optional[Item]: + for constraint in item.parents("constraint"): + if constraint.uid == "/constraint/type-opaque": + return constraint + return None + + +def _generate_types(config: dict, group_uids: List[str], + item_cache: ItemCache) -> None: + types: List[Item] = [] + for domain in config["domains"]: + _gather_types(item_cache[domain], types) + content = SphinxContent() + content.add_automatically_generated_warning() + content.add_index_entries(["RTEMS Data Types", "data types"]) + content.add_header("RTEMS Data Types", level=1) + with content.section("Introduction"): + content.wrap("""This chapter contains a complete list of the RTEMS +primitive data types in alphabetical order. This is intended to be an overview +and the user is encouraged to look at the appropriate chapters in the manual +for more information about the usage of the various data types.""") + + with content.section("List of Data Types"): + content.wrap( + "The following is a complete list of the RTEMS primitive data " + "types in alphabetical order:") + for item in sorted(types, key=lambda x: x["name"]): + content.register_license_and_copyrights_of_item(item) + content.add(f".. Generated from spec:{item.uid}") + name = item["name"] + content.add_index_entries([name] + item["index-entries"]) + with content.section(name, label=make_label(f"Interface {name}")): + mapper = SphinxInterfaceMapper(item, group_uids) + content.wrap(mapper.substitute(item["brief"])) + constraint = _is_opaque_type(item) + if constraint is None: + _TYPE_GENERATORS[item.type](item, mapper, content) + else: + content.add(".. rubric:: MEMBERS:") + content.wrap(mapper.substitute(constraint["text"])) + _add_text(content, mapper, item, "description") + _add_text(content, mapper, item, "notes") + content.add_licence_and_copyrights() + content.write(config["target"]) + + def generate(config: dict, item_cache: ItemCache) -> None: """ Generates interface documentation according to the configuration. @@ -237,6 +331,7 @@ def generate(config: dict, item_cache: ItemCache) -> None: groups = config["groups"] enabled = config["enabled"] group_uids = [doc_config["group"] for doc_config in groups] + group_uids.extend(uid for uid in config["types"]["groups"]) for doc_config in groups: items: List[Item] = [] group = item_cache[doc_config["group"]] @@ -250,3 +345,4 @@ def generate(config: dict, item_cache: ItemCache) -> None: group_uids, items) _generate_directives(doc_config["directives-target"], group, group_uids, items, enabled) + _generate_types(config["types"], group_uids, item_cache) diff --git a/rtemsspec/sphinxcontent.py b/rtemsspec/sphinxcontent.py index 18b4ed53..49cdeb85 100644 --- a/rtemsspec/sphinxcontent.py +++ b/rtemsspec/sphinxcontent.py @@ -337,20 +337,32 @@ def _get_value_sphinx_type(ctx: ItemGetValueContext) -> Any: return f":c:type:`{ctx.value[ctx.key]}`" -def _get_value_sphinx_ref(ctx: ItemGetValueContext, get_value: ItemGetValue, - postfix: str) -> Any: +def _compound_kind(ctx: ItemGetValueContext) -> str: + type_name = ctx.item.type + return f"{type_name[type_name.rfind('-') + 1:]} " + + +def _get_value_sphinx_compound(ctx: ItemGetValueContext) -> Any: + return f"``{_compound_kind(ctx)}{ctx.value[ctx.key]}``" + + +def _get_value_sphinx_ref(ctx: ItemGetValueContext, + get_value: ItemGetValue, + postfix: str = "", + prefix: str = "") -> Any: for ref in ctx.item["references"]: ref_type = ref["type"] identifier = ref["identifier"] + name_ref = f"`{prefix}{ctx.value[ctx.key]}{postfix} <{identifier}>`" if ref_type == "document" and ref["name"] == "c-user": - return f":ref:`{ctx.value[ctx.key]}{postfix} <{identifier}>`" + return f":ref:{name_ref}" if ref_type == "url": - return f"`{ctx.value[ctx.key]}{postfix} <{identifier}>`_" + return f"{name_ref}_" return get_value(ctx) def _get_value_sphinx_unspecified_define(ctx: ItemGetValueContext) -> Any: - return _get_value_sphinx_ref(ctx, _get_value_sphinx_macro, "") + return _get_value_sphinx_ref(ctx, _get_value_sphinx_macro) def _get_value_sphinx_unspecified_function(ctx: ItemGetValueContext) -> Any: @@ -369,7 +381,13 @@ def _get_value_sphinx_unspecified_group(ctx: ItemGetValueContext) -> Any: def _get_value_sphinx_unspecified_type(ctx: ItemGetValueContext) -> Any: - return _get_value_sphinx_ref(ctx, _get_value_sphinx_type, "") + return _get_value_sphinx_ref(ctx, _get_value_sphinx_type) + + +def _get_value_sphinx_unspecified_compound(ctx: ItemGetValueContext) -> Any: + return _get_value_sphinx_ref(ctx, + _get_value_sphinx_compound, + prefix=_compound_kind(ctx)) class SphinxMapper(ItemMapper): @@ -412,11 +430,11 @@ class SphinxMapper(ItemMapper): self.add_get_value("interface/unspecified-enum:/name", _get_value_sphinx_unspecified_type) self.add_get_value("interface/unspecified-struct:/name", - _get_value_sphinx_unspecified_type) + _get_value_sphinx_unspecified_compound) self.add_get_value("interface/unspecified-typedef:/name", _get_value_sphinx_unspecified_type) self.add_get_value("interface/unspecified-union:/name", - _get_value_sphinx_unspecified_type) + _get_value_sphinx_unspecified_compound) def sanitize_name(name: str) -> str: @@ -446,6 +464,7 @@ class SphinxInterfaceMapper(SphinxMapper): _get_appl_config_option) self.add_get_value("interface/appl-config-option/integer:/name", _get_appl_config_option) + self.add_get_value("interface/enum:/name", self._get_type) self.add_get_value("interface/function:/name", self._get_function) self.add_get_value("interface/function:/params/name", get_value_sphinx_param) @@ -453,13 +472,32 @@ class SphinxInterfaceMapper(SphinxMapper): self.add_get_value("interface/macro:/name", self._get_function) self.add_get_value("interface/macro:/params/name", get_value_sphinx_param) + self.add_get_value("interface/struct:/name", self._get_compound) + self.add_get_value("interface/typedef:/name", self._get_type) + self.add_get_value("interface/union:/name", self._get_compound) - def _get_function(self, ctx: ItemGetValueContext) -> Any: - name = ctx.value[ctx.key] + def _get_reference(self, ctx: ItemGetValueContext, name: str, + fallback: str) -> str: for group in ctx.item.parents("interface-ingroup"): if group.uid in self._group_uids: return get_reference(make_label(f"Interface {name}")) - return f":c:func:`{name}`" + return fallback + + def _get_compound(self, ctx: ItemGetValueContext) -> Any: + if ctx.item["definition-kind"] in ["struct-only", "union-only"]: + prefix = f"{ctx.item['interface-type']} " + else: + prefix = "" + name = ctx.value[ctx.key] + return self._get_reference(ctx, name, f"``{prefix}{name}``") + + def _get_function(self, ctx: ItemGetValueContext) -> Any: + name = ctx.value[ctx.key] + return self._get_reference(ctx, name, f":c:func:`{name}`") + + def _get_type(self, ctx: ItemGetValueContext) -> Any: + name = ctx.value[ctx.key] + return self._get_reference(ctx, name, f":c:type:`{name}`") def _get_group(self, ctx: ItemGetValueContext) -> Any: if ctx.item.uid in self._group_uids: diff --git a/rtemsspec/tests/spec-interface/asm.yml b/rtemsspec/tests/spec-interface/asm.yml index d608a770..5f7be4fc 100644 --- a/rtemsspec/tests/spec-interface/asm.yml +++ b/rtemsspec/tests/spec-interface/asm.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: defaults: null variants: [] diff --git a/rtemsspec/tests/spec-interface/c/if/uint32_t.yml b/rtemsspec/tests/spec-interface/c/if/uint32_t.yml index ce9cd90d..9032bd15 100644 --- a/rtemsspec/tests/spec-interface/c/if/uint32_t.yml +++ b/rtemsspec/tests/spec-interface/c/if/uint32_t.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: unsigned variants: [] diff --git a/rtemsspec/tests/spec-interface/command-line-other.yml b/rtemsspec/tests/spec-interface/command-line-other.yml index 7b317f9f..c74d8e8f 100644 --- a/rtemsspec/tests/spec-interface/command-line-other.yml +++ b/rtemsspec/tests/spec-interface/command-line-other.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2022 embedded brains GmbH & Co. KG definition: defaults: null variants: [] diff --git a/rtemsspec/tests/spec-interface/command-line.yml b/rtemsspec/tests/spec-interface/command-line.yml index 4f5144e2..79be22d7 100644 --- a/rtemsspec/tests/spec-interface/command-line.yml +++ b/rtemsspec/tests/spec-interface/command-line.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: group diff --git a/rtemsspec/tests/spec-interface/constraint-a.yml b/rtemsspec/tests/spec-interface/constraint-a.yml index 7bde0282..0c679073 100644 --- a/rtemsspec/tests/spec-interface/constraint-a.yml +++ b/rtemsspec/tests/spec-interface/constraint-a.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2021 embedded brains GmbH & Co. KG enabled-by: true links: [] rationale: null diff --git a/rtemsspec/tests/spec-interface/constraint/other.yml b/rtemsspec/tests/spec-interface/constraint/other.yml new file mode 100644 index 00000000..6067f412 --- /dev/null +++ b/rtemsspec/tests/spec-interface/constraint/other.yml @@ -0,0 +1,9 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: [] +rationale: null +text: | + Some constraint. +type: constraint diff --git a/rtemsspec/tests/spec-interface/constraint/type-opaque.yml b/rtemsspec/tests/spec-interface/constraint/type-opaque.yml new file mode 100644 index 00000000..3cf3535f --- /dev/null +++ b/rtemsspec/tests/spec-interface/constraint/type-opaque.yml @@ -0,0 +1,9 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +enabled-by: true +links: [] +rationale: null +text: | + Members of the type shall not be accessed directly by the application. +type: constraint diff --git a/rtemsspec/tests/spec-interface/define-a.yml b/rtemsspec/tests/spec-interface/define-a.yml index 8f5f7845..4a3874d6 100644 --- a/rtemsspec/tests/spec-interface/define-a.yml +++ b/rtemsspec/tests/spec-interface/define-a.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: '' variants: [] diff --git a/rtemsspec/tests/spec-interface/define-b.yml b/rtemsspec/tests/spec-interface/define-b.yml index cb88ef6b..73663599 100644 --- a/rtemsspec/tests/spec-interface/define-b.yml +++ b/rtemsspec/tests/spec-interface/define-b.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: '1' variants: [] diff --git a/rtemsspec/tests/spec-interface/define-c.yml b/rtemsspec/tests/spec-interface/define-c.yml index e5422c04..ea9d9714 100644 --- a/rtemsspec/tests/spec-interface/define-c.yml +++ b/rtemsspec/tests/spec-interface/define-c.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: '2' variants: [] diff --git a/rtemsspec/tests/spec-interface/define.yml b/rtemsspec/tests/spec-interface/define.yml index 00fec0c0..0c3e6724 100644 --- a/rtemsspec/tests/spec-interface/define.yml +++ b/rtemsspec/tests/spec-interface/define.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: | \ diff --git a/rtemsspec/tests/spec-interface/domain-abc.yml b/rtemsspec/tests/spec-interface/domain-abc.yml index 06123875..803a7395 100644 --- a/rtemsspec/tests/spec-interface/domain-abc.yml +++ b/rtemsspec/tests/spec-interface/domain-abc.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: ABC enabled-by: true index-entries: [] diff --git a/rtemsspec/tests/spec-interface/domain-c.yml b/rtemsspec/tests/spec-interface/domain-c.yml index 435993aa..1673728a 100644 --- a/rtemsspec/tests/spec-interface/domain-c.yml +++ b/rtemsspec/tests/spec-interface/domain-c.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: C enabled-by: true index-entries: [] diff --git a/rtemsspec/tests/spec-interface/domain-command-line.yml b/rtemsspec/tests/spec-interface/domain-command-line.yml index 87b173eb..892e359c 100644 --- a/rtemsspec/tests/spec-interface/domain-command-line.yml +++ b/rtemsspec/tests/spec-interface/domain-command-line.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: Command Line enabled-by: true index-entries: [] diff --git a/rtemsspec/tests/spec-interface/enum.yml b/rtemsspec/tests/spec-interface/enum.yml index 6b4de2c3..b55c8608 100644 --- a/rtemsspec/tests/spec-interface/enum.yml +++ b/rtemsspec/tests/spec-interface/enum.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enum brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition-kind: typedef-only description: Enum description. enabled-by: true diff --git a/rtemsspec/tests/spec-interface/enum2.yml b/rtemsspec/tests/spec-interface/enum2.yml index 38796f7c..823ec0e4 100644 --- a/rtemsspec/tests/spec-interface/enum2.yml +++ b/rtemsspec/tests/spec-interface/enum2.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enum A brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition-kind: enum-only description: null enabled-by: true diff --git a/rtemsspec/tests/spec-interface/enum3.yml b/rtemsspec/tests/spec-interface/enum3.yml index af17ce3b..b885d269 100644 --- a/rtemsspec/tests/spec-interface/enum3.yml +++ b/rtemsspec/tests/spec-interface/enum3.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enum B brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition-kind: typedef-and-enum description: null enabled-by: true diff --git a/rtemsspec/tests/spec-interface/enum4.yml b/rtemsspec/tests/spec-interface/enum4.yml index 00d07e66..04331533 100644 --- a/rtemsspec/tests/spec-interface/enum4.yml +++ b/rtemsspec/tests/spec-interface/enum4.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enum C brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition-kind: typedef-and-enum description: null enabled-by: true diff --git a/rtemsspec/tests/spec-interface/enumerator-0.yml b/rtemsspec/tests/spec-interface/enumerator-0.yml index b92ac2a0..421440f2 100644 --- a/rtemsspec/tests/spec-interface/enumerator-0.yml +++ b/rtemsspec/tests/spec-interface/enumerator-0.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enumerator 0 brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: null variants: [] diff --git a/rtemsspec/tests/spec-interface/enumerator-1.yml b/rtemsspec/tests/spec-interface/enumerator-1.yml index 7548e1eb..e29b9d2d 100644 --- a/rtemsspec/tests/spec-interface/enumerator-1.yml +++ b/rtemsspec/tests/spec-interface/enumerator-1.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enumerator 1 brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: null variants: [] diff --git a/rtemsspec/tests/spec-interface/enumerator-2.yml b/rtemsspec/tests/spec-interface/enumerator-2.yml index 5fff89d5..b312867b 100644 --- a/rtemsspec/tests/spec-interface/enumerator-2.yml +++ b/rtemsspec/tests/spec-interface/enumerator-2.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enumerator 2 brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: null variants: [] diff --git a/rtemsspec/tests/spec-interface/enumerator-a.yml b/rtemsspec/tests/spec-interface/enumerator-a.yml index e7b2a79d..349ed826 100644 --- a/rtemsspec/tests/spec-interface/enumerator-a.yml +++ b/rtemsspec/tests/spec-interface/enumerator-a.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enumerator A brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: '17' variants: [] diff --git a/rtemsspec/tests/spec-interface/enumerator-b.yml b/rtemsspec/tests/spec-interface/enumerator-b.yml index be47ee6e..424839fe 100644 --- a/rtemsspec/tests/spec-interface/enumerator-b.yml +++ b/rtemsspec/tests/spec-interface/enumerator-b.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Enumerator B brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: ${enumerator-a:/name} variants: [] diff --git a/rtemsspec/tests/spec-interface/float_t.yml b/rtemsspec/tests/spec-interface/float_t.yml index 24f009b5..5d395533 100644 --- a/rtemsspec/tests/spec-interface/float_t.yml +++ b/rtemsspec/tests/spec-interface/float_t.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: typedef diff --git a/rtemsspec/tests/spec-interface/forward-decl.yml b/rtemsspec/tests/spec-interface/forward-decl.yml index 1bd10c25..e53e37f3 100644 --- a/rtemsspec/tests/spec-interface/forward-decl.yml +++ b/rtemsspec/tests/spec-interface/forward-decl.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: forward-declaration diff --git a/rtemsspec/tests/spec-interface/func.yml b/rtemsspec/tests/spec-interface/func.yml index c60a9302..dd80f7f3 100644 --- a/rtemsspec/tests/spec-interface/func.yml +++ b/rtemsspec/tests/spec-interface/func.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Function brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/func2.yml b/rtemsspec/tests/spec-interface/func2.yml index f77ec49f..f54fcdfa 100644 --- a/rtemsspec/tests/spec-interface/func2.yml +++ b/rtemsspec/tests/spec-interface/func2.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Very long function brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: __attribute__((__const__)) diff --git a/rtemsspec/tests/spec-interface/func3.yml b/rtemsspec/tests/spec-interface/func3.yml index 97eeda46..cb21da34 100644 --- a/rtemsspec/tests/spec-interface/func3.yml +++ b/rtemsspec/tests/spec-interface/func3.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: null variants: diff --git a/rtemsspec/tests/spec-interface/func4.yml b/rtemsspec/tests/spec-interface/func4.yml index 3d6cafbf..70b68a7c 100644 --- a/rtemsspec/tests/spec-interface/func4.yml +++ b/rtemsspec/tests/spec-interface/func4.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Function brief description with very long return type. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/func5.yml b/rtemsspec/tests/spec-interface/func5.yml index bc8f6efd..bcb8bf00 100644 --- a/rtemsspec/tests/spec-interface/func5.yml +++ b/rtemsspec/tests/spec-interface/func5.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/func6.yml b/rtemsspec/tests/spec-interface/func6.yml index 27c64428..329ec708 100644 --- a/rtemsspec/tests/spec-interface/func6.yml +++ b/rtemsspec/tests/spec-interface/func6.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/ga.yml b/rtemsspec/tests/spec-interface/ga.yml index 0a7784eb..8bf6b17e 100644 --- a/rtemsspec/tests/spec-interface/ga.yml +++ b/rtemsspec/tests/spec-interface/ga.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Group A brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: Group A description. enabled-by: true identifier: GroupA diff --git a/rtemsspec/tests/spec-interface/gb.yml b/rtemsspec/tests/spec-interface/gb.yml index 38660c2b..3d5499bc 100644 --- a/rtemsspec/tests/spec-interface/gb.yml +++ b/rtemsspec/tests/spec-interface/gb.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: null enabled-by: true identifier: GroupB diff --git a/rtemsspec/tests/spec-interface/gc.yml b/rtemsspec/tests/spec-interface/gc.yml index 3957a7e6..3176e394 100644 --- a/rtemsspec/tests/spec-interface/gc.yml +++ b/rtemsspec/tests/spec-interface/gc.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Group C brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: Group C description. enabled-by: true identifier: GroupC diff --git a/rtemsspec/tests/spec-interface/ge.yml b/rtemsspec/tests/spec-interface/ge.yml index 7c944143..b7fea67d 100644 --- a/rtemsspec/tests/spec-interface/ge.yml +++ b/rtemsspec/tests/spec-interface/ge.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Group E brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: Group E description. enabled-by: true identifier: GroupE diff --git a/rtemsspec/tests/spec-interface/gf.yml b/rtemsspec/tests/spec-interface/gf.yml index 77ea9b5b..ff09beb4 100644 --- a/rtemsspec/tests/spec-interface/gf.yml +++ b/rtemsspec/tests/spec-interface/gf.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Group F brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG description: Group F description. enabled-by: true identifier: GroupF diff --git a/rtemsspec/tests/spec-interface/h.yml b/rtemsspec/tests/spec-interface/h.yml index ec273a6b..1b04500e 100644 --- a/rtemsspec/tests/spec-interface/h.yml +++ b/rtemsspec/tests/spec-interface/h.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: This header file defines X. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: - and: - RTEMS_SMP diff --git a/rtemsspec/tests/spec-interface/h2.yml b/rtemsspec/tests/spec-interface/h2.yml index 1310cc06..45cca8c3 100644 --- a/rtemsspec/tests/spec-interface/h2.yml +++ b/rtemsspec/tests/spec-interface/h2.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: This header file defines X. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: RTEMS_SMP index-entries: [] interface-type: header-file diff --git a/rtemsspec/tests/spec-interface/h3.yml b/rtemsspec/tests/spec-interface/h3.yml index 42d388d5..06e75670 100644 --- a/rtemsspec/tests/spec-interface/h3.yml +++ b/rtemsspec/tests/spec-interface/h3.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: This header file defines X. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: header-file diff --git a/rtemsspec/tests/spec-interface/h4.yml b/rtemsspec/tests/spec-interface/h4.yml index 82128ad6..b49c6cd8 100644 --- a/rtemsspec/tests/spec-interface/h4.yml +++ b/rtemsspec/tests/spec-interface/h4.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: This header file defines X. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: header-file diff --git a/rtemsspec/tests/spec-interface/irqamp-timestamp.yml b/rtemsspec/tests/spec-interface/irqamp-timestamp.yml index 05d2ed58..f0b33873 100644 --- a/rtemsspec/tests/spec-interface/irqamp-timestamp.yml +++ b/rtemsspec/tests/spec-interface/irqamp-timestamp.yml @@ -3,7 +3,7 @@ brief: | This structure defines the ${.:/register-block-group} register block memory map. copyrights: -- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2021 embedded brains GmbH & Co. KG description: null enabled-by: true identifier: IrqampTimestamp diff --git a/rtemsspec/tests/spec-interface/irqamp.yml b/rtemsspec/tests/spec-interface/irqamp.yml index 2a7a8cfb..c6efd13c 100644 --- a/rtemsspec/tests/spec-interface/irqamp.yml +++ b/rtemsspec/tests/spec-interface/irqamp.yml @@ -3,7 +3,7 @@ brief: | This structure defines the ${.:/register-block-group} register block memory map. copyrights: -- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2021 embedded brains GmbH & Co. KG description: null enabled-by: true identifier: Irqamp diff --git a/rtemsspec/tests/spec-interface/macro.yml b/rtemsspec/tests/spec-interface/macro.yml index 449576c2..5b4c38a5 100644 --- a/rtemsspec/tests/spec-interface/macro.yml +++ b/rtemsspec/tests/spec-interface/macro.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Very long macro brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/macro2.yml b/rtemsspec/tests/spec-interface/macro2.yml index fdae338f..4d71e3ad 100644 --- a/rtemsspec/tests/spec-interface/macro2.yml +++ b/rtemsspec/tests/spec-interface/macro2.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Short macro brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/macro3.yml b/rtemsspec/tests/spec-interface/macro3.yml index be93887a..891071ac 100644 --- a/rtemsspec/tests/spec-interface/macro3.yml +++ b/rtemsspec/tests/spec-interface/macro3.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Macro without parameters. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: attributes: null diff --git a/rtemsspec/tests/spec-interface/math.yml b/rtemsspec/tests/spec-interface/math.yml index 3e8f2861..d436aec7 100644 --- a/rtemsspec/tests/spec-interface/math.yml +++ b/rtemsspec/tests/spec-interface/math.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: This header file defines X. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: header-file diff --git a/rtemsspec/tests/spec-interface/option.yml b/rtemsspec/tests/spec-interface/option.yml index 523bde33..da2e03fa 100644 --- a/rtemsspec/tests/spec-interface/option.yml +++ b/rtemsspec/tests/spec-interface/option.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 appl-config-option-type: feature copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG default: default a description: description a enabled-by: true diff --git a/rtemsspec/tests/spec-interface/register-block-no-size.yml b/rtemsspec/tests/spec-interface/register-block-no-size.yml index 3c78e5b7..82bd9357 100644 --- a/rtemsspec/tests/spec-interface/register-block-no-size.yml +++ b/rtemsspec/tests/spec-interface/register-block-no-size.yml @@ -2,7 +2,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: | Brief. copyrights: -- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2022 embedded brains GmbH & Co. KG description: null enabled-by: true identifier: RBNS diff --git a/rtemsspec/tests/spec-interface/s.yml b/rtemsspec/tests/spec-interface/s.yml index 3460e29b..35f09a54 100644 --- a/rtemsspec/tests/spec-interface/s.yml +++ b/rtemsspec/tests/spec-interface/s.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: - default: brief: Brief union description. diff --git a/rtemsspec/tests/spec-interface/s2.yml b/rtemsspec/tests/spec-interface/s2.yml new file mode 100644 index 00000000..c7c857fc --- /dev/null +++ b/rtemsspec/tests/spec-interface/s2.yml @@ -0,0 +1,30 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: null +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +definition: +- default: + brief: Brief member description. + definition: ${/c/if/uint32_t:/name} ${.:name} + description: Member description. + kind: member + name: member + variants: [] +definition-kind: typedef-only +description: | + References: ${.:/name} +enabled-by: true +index-entries: [] +interface-type: struct +links: +- role: interface-placement + uid: h +- role: interface-ingroup + uid: ga +- role: constraint + uid: constraint/other +- role: constraint + uid: constraint/type-opaque +name: Struct2 +notes: Notes. +type: interface diff --git a/rtemsspec/tests/spec-interface/smp.yml b/rtemsspec/tests/spec-interface/smp.yml index c522cb20..976a599b 100644 --- a/rtemsspec/tests/spec-interface/smp.yml +++ b/rtemsspec/tests/spec-interface/smp.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: unspecified-define diff --git a/rtemsspec/tests/spec-interface/stdint.yml b/rtemsspec/tests/spec-interface/stdint.yml index 45165d90..2013ef18 100644 --- a/rtemsspec/tests/spec-interface/stdint.yml +++ b/rtemsspec/tests/spec-interface/stdint.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: This header file defines X. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: header-file diff --git a/rtemsspec/tests/spec-interface/td.yml b/rtemsspec/tests/spec-interface/td.yml index e4f5cb29..c1df8dc4 100644 --- a/rtemsspec/tests/spec-interface/td.yml +++ b/rtemsspec/tests/spec-interface/td.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Typedef Integer brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: | ${uint32_t:/name} ${.:/name} /* ${other:/comment} */ diff --git a/rtemsspec/tests/spec-interface/td3.yml b/rtemsspec/tests/spec-interface/td3.yml index b1ef1622..5ef221d2 100644 --- a/rtemsspec/tests/spec-interface/td3.yml +++ b/rtemsspec/tests/spec-interface/td3.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: null variants: diff --git a/rtemsspec/tests/spec-interface/u.yml b/rtemsspec/tests/spec-interface/u.yml index d6e7d8ce..94da3814 100644 --- a/rtemsspec/tests/spec-interface/u.yml +++ b/rtemsspec/tests/spec-interface/u.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: null copyrights: -- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2022 embedded brains GmbH & Co. KG definition: - default: brief: Brief member 0 description. diff --git a/rtemsspec/tests/spec-interface/uint32_t.yml b/rtemsspec/tests/spec-interface/uint32_t.yml index 3fffa0cf..2570f87a 100644 --- a/rtemsspec/tests/spec-interface/uint32_t.yml +++ b/rtemsspec/tests/spec-interface/uint32_t.yml @@ -1,6 +1,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG enabled-by: true index-entries: [] interface-type: typedef diff --git a/rtemsspec/tests/spec-interface/var.yml b/rtemsspec/tests/spec-interface/var.yml index dc4df652..fc2f71bd 100644 --- a/rtemsspec/tests/spec-interface/var.yml +++ b/rtemsspec/tests/spec-interface/var.yml @@ -1,7 +1,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: Variable brief description. copyrights: -- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 2020 embedded brains GmbH & Co. KG definition: default: | ${forward-decl:/name} *${.:/name} diff --git a/rtemsspec/tests/spec-sphinx/s.yml b/rtemsspec/tests/spec-sphinx/s.yml new file mode 100644 index 00000000..d8fcbe9f --- /dev/null +++ b/rtemsspec/tests/spec-sphinx/s.yml @@ -0,0 +1,14 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: null +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +definition: [] +definition-kind: struct-only +description: null +enabled-by: true +index-entries: [] +interface-type: struct +links: [] +name: s +notes: null +type: interface diff --git a/rtemsspec/tests/test_content_sphinx.py b/rtemsspec/tests/test_content_sphinx.py index 4858f796..ec8bd272 100644 --- a/rtemsspec/tests/test_content_sphinx.py +++ b/rtemsspec/tests/test_content_sphinx.py @@ -365,3 +365,4 @@ def test_substitute(tmpdir): assert mapper.substitute("${y:/name}") == "foobar" assert mapper.substitute("${a:/name}") == ":c:data:`a`" assert mapper.substitute("${f:/name}") == ":c:func:`f`" + assert mapper.substitute("${s:/name}") == "``struct s``" diff --git a/rtemsspec/tests/test_interface.py b/rtemsspec/tests/test_interface.py index f1131784..bee4f00a 100644 --- a/rtemsspec/tests/test_interface.py +++ b/rtemsspec/tests/test_interface.py @@ -63,7 +63,7 @@ def test_interface(tmpdir): */ /* - * Copyright (C) 2020, 2022 embedded brains GmbH (http://www.embedded-brains.de) + * Copyright (C) 2020, 2023 embedded brains GmbH & Co. KG * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -594,6 +594,34 @@ struct Struct { Enum some_member_4; }; +/* Generated from spec:/s2 */ + +/** + * @ingroup GroupA + * + * References: Struct2 + * + * @par Notes + * Notes. + * + * @par Constraints + * @parblock + * The following constraints apply to this structure: + * + * * Some constraint. + * + * * Members of the type shall not be accessed directly by the application. + * @endparblock + */ +typedef struct { + /** + * @brief Brief member description. + * + * Member description. + */ + uint32_t member; +} Struct2; + /* Generated from spec:/td */ /** diff --git a/rtemsspec/tests/test_interfacedoc.py b/rtemsspec/tests/test_interfacedoc.py index 7ed88ee6..d2698cb7 100644 --- a/rtemsspec/tests/test_interfacedoc.py +++ b/rtemsspec/tests/test_interfacedoc.py @@ -34,6 +34,11 @@ from rtemsspec.tests.util import create_item_cache_config_and_copy_spec def test_interfacedoc(tmpdir): + item_cache_config = create_item_cache_config_and_copy_spec( + tmpdir, "spec-interface", with_spec_types=True) + item_cache = ItemCache(item_cache_config) + augment_glossary_terms(item_cache["/glossary"], []) + doc_config = {} doc_config["group"] = "/gb" introduction_rst = os.path.join(tmpdir, "introduction.rst") @@ -48,17 +53,24 @@ def test_interfacedoc(tmpdir): directives_2_rst = os.path.join(tmpdir, "directives-2.rst") doc_config_2["directives-target"] = directives_2_rst - item_cache_config = create_item_cache_config_and_copy_spec( - tmpdir, "spec-interface", with_spec_types=True) - config = {"enabled": [], "groups": [doc_config, doc_config_2]} - item_cache = ItemCache(item_cache_config) - augment_glossary_terms(item_cache["/glossary"], []) + types_rst = os.path.join(tmpdir, "types.rst") + types_config = { + "domains": ["/domain-abc"], + "groups": [], + "target": types_rst + } + + config = { + "enabled": [], + "groups": [doc_config, doc_config_2], + "types": types_config + } generate(config, item_cache) with open(introduction_rst, "r") as src: content = """.. SPDX-License-Identifier: CC-BY-SA-4.0 -.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +.. Copyright (C) 2020 embedded brains GmbH & Co. KG .. This file is part of the RTEMS quality process and was automatically .. generated. If you find something that needs to be fixed or @@ -110,7 +122,7 @@ The directives provided by the Group B are: with open(directives_rst, "r") as src: content = """.. SPDX-License-Identifier: CC-BY-SA-4.0 -.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +.. Copyright (C) 2020 embedded brains GmbH & Co. KG .. This file is part of the RTEMS quality process and was automatically .. generated. If you find something that needs to be fixed or @@ -223,7 +235,7 @@ VeryLongFunction description. ``2`` is returned, in case B. -:c:type:`Enum` +:ref:`InterfaceEnum` is returned, in case C. Sometimes some value. See :ref:`InterfaceFunction`. @@ -358,7 +370,7 @@ Macro without parameters. with open(introduction_2_rst, "r") as src: content = """.. SPDX-License-Identifier: CC-BY-SA-4.0 -.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +.. Copyright (C) 2020 embedded brains GmbH & Co. KG .. This file is part of the RTEMS quality process and was automatically .. generated. If you find something that needs to be fixed or @@ -396,7 +408,7 @@ Group A description. The directives provided by the Group A are: with open(directives_2_rst, "r") as src: content = """.. SPDX-License-Identifier: CC-BY-SA-4.0 -.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +.. Copyright (C) 2020 embedded brains GmbH & Co. KG .. This file is part of the RTEMS quality process and was automatically .. generated. If you find something that needs to be fixed or @@ -466,10 +478,11 @@ Function brief description. .. rubric:: DESCRIPTION: Function description. References to :term:`xs `, -:ref:`InterfaceVeryLongFunction`, :c:type:`Integer`, :c:type:`Enum`, -:c:macro:`DEFINE`, :ref:`InterfaceVERYLONGMACRO`, Variable, -:c:macro:`ENUMERATOR_0`, ``struct Struct``, :ref:`a`, interface, :ref:`GroupA`, -and Group F. Second parameter is ``Param1``. Mention :c:type:`US`. +:ref:`InterfaceVeryLongFunction`, :ref:`InterfaceInteger`, +:ref:`InterfaceEnum`, :c:macro:`DEFINE`, :ref:`InterfaceVERYLONGMACRO`, +Variable, :c:macro:`ENUMERATOR_0`, ``struct Struct``, :ref:`a`, interface, +:ref:`GroupA`, and Group F. Second parameter is ``Param1``. Mention ``struct +US``. .. code-block: @@ -492,3 +505,186 @@ The following constraints apply to this directive: void VoidFunction( void ); """ + + with open(types_rst, "r") as src: + content = """.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. Copyright (C) 2020, 2023 embedded brains GmbH & Co. KG + +.. This file is part of the RTEMS quality process and was automatically +.. generated. If you find something that needs to be fixed or +.. worded better please post a report or patch to an RTEMS mailing list +.. or raise a bug report: +.. +.. https://www.rtems.org/bugs.html +.. +.. For information on updating and regenerating please refer to the How-To +.. section in the Software Requirements Engineering chapter of the +.. RTEMS Software Engineering manual. The manual is provided as a part of +.. a release. For development sources please refer to the online +.. documentation at: +.. +.. https://docs.rtems.org + +.. index:: RTEMS Data Types +.. index:: data types + +RTEMS Data Types +**************** + +.. _Introduction: + +Introduction +============ + +This chapter contains a complete list of the RTEMS primitive data types in +alphabetical order. This is intended to be an overview and the user is +encouraged to look at the appropriate chapters in the manual for more +information about the usage of the various data types. + +.. _ListOfDataTypes: + +List of Data Types +================== + +The following is a complete list of the RTEMS primitive data types in +alphabetical order: + +.. Generated from spec:/enum + +.. index:: Enum + +.. _InterfaceEnum: + +Enum +---- + +Enum brief description. + +.. rubric:: ENUMERATORS: + +ENUMERATOR_0 + Enumerator 0 brief description. + +ENUMERATOR_1 + Enumerator 1 brief description. + +ENUMERATOR_2 + Enumerator 2 brief description. + +.. rubric:: DESCRIPTION: + +Enum description. + +.. Generated from spec:/enum2 + +.. index:: EnumA + +.. _InterfaceEnumA: + +EnumA +----- + +Enum A brief description. + +.. rubric:: ENUMERATORS: + +ENUMERATOR_A + Enumerator A brief description. + +.. Generated from spec:/enum3 + +.. index:: EnumB + +.. _InterfaceEnumB: + +EnumB +----- + +Enum B brief description. + +.. rubric:: ENUMERATORS: + +ENUMERATOR_B + Enumerator B brief description. + +.. Generated from spec:/td + +.. index:: Integer + +.. _InterfaceInteger: + +Integer +------- + +Typedef Integer brief description. + +.. rubric:: DESCRIPTION: + +Typedef Integer description. + +.. Generated from spec:/td3 + +.. index:: Integer3 + +.. _InterfaceInteger3: + +Integer3 +-------- + +.. Generated from spec:/s + +.. index:: Struct + +.. _InterfaceStruct: + +Struct +------ + +.. rubric:: MEMBERS: + +some_union + Brief union description. Union description. + +some_member_4 + Brief member 4 description. Member 4 description. + +.. Generated from spec:/s2 + +.. index:: Struct2 + +.. _InterfaceStruct2: + +Struct2 +------- + +.. rubric:: MEMBERS: + +Members of the type shall not be accessed directly by the application. + +.. rubric:: DESCRIPTION: + +References: :ref:`InterfaceStruct2` + +.. rubric:: NOTES: + +Notes. + +.. Generated from spec:/u + +.. index:: Union + +.. _InterfaceUnion: + +Union +----- + +.. rubric:: MEMBERS: + +m_0 + Brief member 0 description. + +m_1 + Brief member 1 description. +""" + assert content == src.read() -- cgit v1.2.3