summaryrefslogtreecommitdiffstats
path: root/rtemsspec
diff options
context:
space:
mode:
Diffstat (limited to 'rtemsspec')
-rw-r--r--rtemsspec/applconfig.py107
-rw-r--r--rtemsspec/sphinxcontent.py2
-rw-r--r--rtemsspec/tests/spec-applconfig/a.yml8
-rw-r--r--rtemsspec/tests/spec-applconfig/unspec-func.yml11
-rw-r--r--rtemsspec/tests/spec-applconfig/unspec-group-2.yml9
-rw-r--r--rtemsspec/tests/spec-applconfig/unspec-group-3.yml10
-rw-r--r--rtemsspec/tests/spec-applconfig/unspec-group.yml11
-rw-r--r--rtemsspec/tests/spec/interface-more.yml4
-rw-r--r--rtemsspec/tests/test_applconfig.py18
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()
*