diff options
Diffstat (limited to 'rtemsspec')
-rw-r--r-- | rtemsspec/applconfig.py | 107 | ||||
-rw-r--r-- | rtemsspec/sphinxcontent.py | 2 | ||||
-rw-r--r-- | rtemsspec/tests/spec-applconfig/a.yml | 8 | ||||
-rw-r--r-- | rtemsspec/tests/spec-applconfig/unspec-func.yml | 11 | ||||
-rw-r--r-- | rtemsspec/tests/spec-applconfig/unspec-group-2.yml | 9 | ||||
-rw-r--r-- | rtemsspec/tests/spec-applconfig/unspec-group-3.yml | 10 | ||||
-rw-r--r-- | rtemsspec/tests/spec-applconfig/unspec-group.yml | 11 | ||||
-rw-r--r-- | rtemsspec/tests/spec/interface-more.yml | 4 | ||||
-rw-r--r-- | rtemsspec/tests/test_applconfig.py | 18 |
9 files changed, 77 insertions, 103 deletions
diff --git a/rtemsspec/applconfig.py b/rtemsspec/applconfig.py index 98b6ab74..fde61ffa 100644 --- a/rtemsspec/applconfig.py +++ b/rtemsspec/applconfig.py @@ -257,109 +257,23 @@ def _generate(group: Item, options: ItemMap, content: _ContentAdaptor) -> None: content.add_licence_and_copyrights() -def _sphinx_ref(ref: str) -> str: - return f":ref:`{ref}`" - - -_SPHINX_DOC_REFS = { - "config-scheduler-table": _sphinx_ref("ConfigurationSchedulerTable"), - "config-unlimited-objects": _sphinx_ref("ConfigUnlimitedObjects"), - "mp-proxies": _sphinx_ref("MPCIProxies"), - "mrsp": _sphinx_ref("MrsP"), - "scheduler-cbs": _sphinx_ref("SchedulerCBS"), - "scheduler-concepts": _sphinx_ref("RTEMSAPIClassicScheduler"), - "scheduler-edf": _sphinx_ref("SchedulerEDF"), - "scheduler-priority": _sphinx_ref("SchedulerPriority"), - "scheduler-priority-simple": _sphinx_ref("SchedulerPrioritySimple"), - "scheduler-smp-edf": _sphinx_ref("SchedulerSMPEDF"), - "scheduler-smp-priority-affinity": - _sphinx_ref("SchedulerSMPPriorityAffinity"), - "scheduler-smp-priority": _sphinx_ref("SchedulerSMPPriority"), - "scheduler-smp-priority-simple": _sphinx_ref("SchedulerSMPPrioritySimple"), - "terminate": _sphinx_ref("Terminate"), -} - - -def _get_value_sphinx_reference(_ctx: ItemGetValueContext) -> Any: - return _SPHINX_DOC_REFS - - -def _add_sphinx_get_values(mapper: ItemMapper) -> None: - for opt in ["feature-enable", "feature", "initializer", "integer"]: - doc_ref = f"interface/appl-config-option/{opt}:/document-reference" - mapper.add_get_value(doc_ref, _get_value_sphinx_reference) - - -def _c_user_ref(ref: str, name: str) -> str: - c_user = "https://docs.rtems.org/branches/master/c-user/" - return f"<a href={c_user}{ref}>{name}</a>" - - -_DOXYGEN_DOC_REFS = { - "config-scheduler-table": - _c_user_ref( - "config/scheduler-clustered.html#configuration-step-3-scheduler-table", - "Configuration Step 3 - Scheduler Table"), - "config-unlimited-objects": - _c_user_ref("config/intro.html#unlimited-objects", "Unlimited Objects"), - "mp-proxies": - _c_user_ref("multiprocessing.html#proxies", "Proxies"), - "mrsp": - _c_user_ref( - "key_concepts.html#multiprocessor-resource-sharing-protocol-mrsp", - "Multiprocessor Resource Sharing Protocol (MrsP)"), - "scheduler-cbs": - _c_user_ref( - "scheduling_concepts.html#constant-bandwidth-server-scheduling-cbs", - "Constant Bandwidth Server Scheduling (CBS)"), - "scheduler-concepts": - _c_user_ref("scheduling_concepts.html", "Scheduling Concepts"), - "scheduler-edf": - _c_user_ref("scheduling_concepts.html#earliest-deadline-first-scheduler", - "Earliest Deadline First Scheduler"), - "scheduler-priority": - _c_user_ref("scheduling_concepts.html#deterministic-priority-scheduler", - "Deterministic Priority Scheduler"), - "scheduler-priority-simple": - _c_user_ref("scheduling_concepts.html#simple-priority-scheduler", - "Simple Priority Scheduler"), - "scheduler-smp-edf": - _c_user_ref( - "scheduling_concepts.html#earliest-deadline-first-smp-scheduler", - "Earliest Deadline First SMP Scheduler"), - "scheduler-smp-priority-affinity": - _c_user_ref( - "scheduling_concepts.html" - "#arbitrary-processor-affinity-priority-smp-scheduler", - "Arbitrary Processor Affinity Priority SMP Scheduler"), - "scheduler-smp-priority": - _c_user_ref( - "scheduling_concepts.html#deterministic-priority-smp-scheduler", - "Deterministic Priority SMP Scheduler"), - "scheduler-smp-priority-simple": - _c_user_ref("scheduling_concepts.html#simple-priority-smp-scheduler", - "Simple Priority SMP Scheduler"), - "terminate": - _c_user_ref("fatal_error.html#announcing-a-fatal-error", - "Announcing a Fatal Error"), -} - - -def _get_value_doxygen_reference(_ctx: ItemGetValueContext) -> Any: - return _DOXYGEN_DOC_REFS - - def _get_value_doxygen_url(ctx: ItemGetValueContext) -> Any: url = ctx.item["references"]["url"] return f"<a href=\"{url}\">{ctx.value[ctx.key]}</a>" -def _get_value_doxygen_unspecfied_define(ctx: ItemGetValueContext) -> Any: +def _get_value_doxygen_unspecified_define(ctx: ItemGetValueContext) -> Any: if "url" in ctx.item["references"]: return _get_value_doxygen_url(ctx) return get_value_hash(ctx) +def _get_value_doxygen_unspecified_group(ctx: ItemGetValueContext) -> Any: + if "url" in ctx.item["references"]: + return _get_value_doxygen_url(ctx) + return ctx.value[ctx.key] + + def _get_value_doxygen_unspecfied_type(ctx: ItemGetValueContext) -> Any: if "url" in ctx.item["references"]: return _get_value_doxygen_url(ctx) @@ -368,8 +282,6 @@ def _get_value_doxygen_unspecfied_type(ctx: ItemGetValueContext) -> Any: def _add_doxygen_get_values(mapper: ItemMapper) -> None: for opt in ["feature-enable", "feature", "initializer", "integer"]: - doc_ref = f"interface/appl-config-option/{opt}:/document-reference" - mapper.add_get_value(doc_ref, _get_value_doxygen_reference) name = f"interface/appl-config-option/{opt}:/name" mapper.add_get_value(name, get_value_hash) mapper.add_get_value("interface/define:/name", get_value_hash) @@ -381,9 +293,11 @@ def _add_doxygen_get_values(mapper: ItemMapper) -> None: mapper.add_get_value("interface/typedef:/name", get_value_double_colon) mapper.add_get_value("interface/union:/name", get_value_double_colon) mapper.add_get_value("interface/unspecified-define:/name", - _get_value_doxygen_unspecfied_define) + _get_value_doxygen_unspecified_define) mapper.add_get_value("interface/unspecified-function:/name", get_value_doxygen_function) + mapper.add_get_value("interface/unspecified-group:/name", + _get_value_doxygen_unspecified_group) mapper.add_get_value("interface/unspecified-type:/name", _get_value_doxygen_unspecfied_type) @@ -398,7 +312,6 @@ def generate(config: dict, item_cache: ItemCache) -> None: configuration groups and options. """ sphinx_mapper = SphinxInterfaceMapper(EmptyItem()) - _add_sphinx_get_values(sphinx_mapper) doxygen_mapper = ItemMapper(EmptyItem()) _add_doxygen_get_values(doxygen_mapper) doxygen_content = _DoxygenContentAdaptor(doxygen_mapper) diff --git a/rtemsspec/sphinxcontent.py b/rtemsspec/sphinxcontent.py index 7b6a257d..5e530ff3 100644 --- a/rtemsspec/sphinxcontent.py +++ b/rtemsspec/sphinxcontent.py @@ -253,7 +253,7 @@ def _get_value_sphinx_unspecified_group(ctx: ItemGetValueContext) -> Any: return f":ref:`{ctx.item['references']['c-user']}`" if "url" in ctx.item["references"]: url = ctx.item["references"]["url"] - return f"`{ctx.value[ctx.key]}{postfix} <{url}>`_" + return f"`{ctx.value[ctx.key]} <{url}>`_" return ctx.value[ctx.key] diff --git a/rtemsspec/tests/spec-applconfig/a.yml b/rtemsspec/tests/spec-applconfig/a.yml index 6cbd2668..57a7b903 100644 --- a/rtemsspec/tests/spec-applconfig/a.yml +++ b/rtemsspec/tests/spec-applconfig/a.yml @@ -11,7 +11,13 @@ notes: | * ${b:/name} - * ${.:/document-reference/terminate} + * ${unspec-group:/name} + + * ${unspec-group-2:/name} + + * ${unspec-group-3:/name} + + * ${unspec-func:/name} * ${func:/name} diff --git a/rtemsspec/tests/spec-applconfig/unspec-func.yml b/rtemsspec/tests/spec-applconfig/unspec-func.yml new file mode 100644 index 00000000..24cc7148 --- /dev/null +++ b/rtemsspec/tests/spec-applconfig/unspec-func.yml @@ -0,0 +1,11 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +interface-type: unspecified-function +links: [] +name: unspec_func +references: + c-user: SphinxRefUnspecFunc + url: unspec-func.html +type: interface diff --git a/rtemsspec/tests/spec-applconfig/unspec-group-2.yml b/rtemsspec/tests/spec-applconfig/unspec-group-2.yml new file mode 100644 index 00000000..106ad3e7 --- /dev/null +++ b/rtemsspec/tests/spec-applconfig/unspec-group-2.yml @@ -0,0 +1,9 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +interface-type: unspecified-group +links: [] +name: Unspec Group 2 +references: [] +type: interface diff --git a/rtemsspec/tests/spec-applconfig/unspec-group-3.yml b/rtemsspec/tests/spec-applconfig/unspec-group-3.yml new file mode 100644 index 00000000..f84af54e --- /dev/null +++ b/rtemsspec/tests/spec-applconfig/unspec-group-3.yml @@ -0,0 +1,10 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +interface-type: unspecified-group +links: [] +name: Unspec Group 3 +references: + url: unspec-group-3.html +type: interface diff --git a/rtemsspec/tests/spec-applconfig/unspec-group.yml b/rtemsspec/tests/spec-applconfig/unspec-group.yml new file mode 100644 index 00000000..b9f48595 --- /dev/null +++ b/rtemsspec/tests/spec-applconfig/unspec-group.yml @@ -0,0 +1,11 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +interface-type: unspecified-group +links: [] +name: Unspec Group +references: + c-user: SphinxRefUnspecGroup + url: unspec-group.html +type: interface diff --git a/rtemsspec/tests/spec/interface-more.yml b/rtemsspec/tests/spec/interface-more.yml index 237232bf..9c7917ec 100644 --- a/rtemsspec/tests/spec/interface-more.yml +++ b/rtemsspec/tests/spec/interface-more.yml @@ -75,6 +75,10 @@ links: uid: interface - role: spec-refinement spec-key: interface-type + spec-value: unspecified-group + uid: interface +- role: spec-refinement + spec-key: interface-type spec-value: unspecified-type uid: interface - role: spec-refinement diff --git a/rtemsspec/tests/test_applconfig.py b/rtemsspec/tests/test_applconfig.py index f01410c3..c2ebd770 100644 --- a/rtemsspec/tests/test_applconfig.py +++ b/rtemsspec/tests/test_applconfig.py @@ -99,7 +99,13 @@ NOTES: * :ref:`b` - * :ref:`Terminate` + * :ref:`SphinxRefUnspecGroup` + + * Unspec Group 2 + + * `Unspec Group 3 <unspec-group-3.html>`_ + + * :ref:`unspec_func() <SphinxRefUnspecFunc>` * :c:func:`func` @@ -452,9 +458,13 @@ NOTES: * * * #b * - * * <a - * href=https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error>Announcing - * a Fatal Error</a> + * * <a href="unspec-group.html">Unspec Group</a> + * + * * Unspec Group 2 + * + * * <a href="unspec-group-3.html">Unspec Group 3</a> + * + * * unspec_func() * * * func() * |