[rtems-central commit] applconfig: Use unspecified groups

Sebastian Huber sebh at rtems.org
Fri May 7 17:06:26 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    1bbc5d0fef3b04494c1c8b6d97f0e8072a7047ee
Changeset: http://git.rtems.org/rtems-central/commit/?id=1bbc5d0fef3b04494c1c8b6d97f0e8072a7047ee

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri May  7 15:52:12 2021 +0200

applconfig: Use unspecified groups

Remove ${.:document-reference/*} hacks.

---

 rtemsspec/applconfig.py                            | 107 ++-------------------
 rtemsspec/sphinxcontent.py                         |   2 +-
 rtemsspec/tests/spec-applconfig/a.yml              |   8 +-
 rtemsspec/tests/spec-applconfig/unspec-func.yml    |  11 +++
 rtemsspec/tests/spec-applconfig/unspec-group-2.yml |   9 ++
 rtemsspec/tests/spec-applconfig/unspec-group-3.yml |  10 ++
 rtemsspec/tests/spec-applconfig/unspec-group.yml   |  11 +++
 rtemsspec/tests/spec/interface-more.yml            |   4 +
 rtemsspec/tests/test_applconfig.py                 |  18 +++-
 spec/acfg/if/group-schedgeneral.yml                |   6 +-
 spec/acfg/if/max-barriers.yml                      |   2 +-
 spec/acfg/if/max-message-queues.yml                |   2 +-
 spec/acfg/if/max-partitions.yml                    |   2 +-
 spec/acfg/if/max-periods.yml                       |   2 +-
 spec/acfg/if/max-ports.yml                         |   2 +-
 spec/acfg/if/max-posix-key-value-pairs.yml         |   2 +-
 spec/acfg/if/max-posix-keys.yml                    |   2 +-
 spec/acfg/if/max-posix-message-queues.yml          |   2 +-
 spec/acfg/if/max-posix-semaphores.yml              |   2 +-
 spec/acfg/if/max-posix-shms.yml                    |   2 +-
 spec/acfg/if/max-posix-threads.yml                 |   2 +-
 spec/acfg/if/max-posix-timers.yml                  |   2 +-
 spec/acfg/if/max-priority.yml                      |   6 +-
 spec/acfg/if/max-regions.yml                       |   2 +-
 spec/acfg/if/max-semaphores.yml                    |   6 +-
 spec/acfg/if/max-tasks.yml                         |   2 +-
 spec/acfg/if/max-timers.yml                        |   2 +-
 spec/acfg/if/mp-max-proxies.yml                    |   2 +-
 spec/acfg/if/record-fatal-dump-base64-zlib.yml     |   2 +-
 spec/acfg/if/record-fatal-dump-base64.yml          |   2 +-
 spec/acfg/if/scheduler-cbs.yml                     |   2 +-
 spec/acfg/if/scheduler-edf-smp.yml                 |   2 +-
 spec/acfg/if/scheduler-edf.yml                     |   2 +-
 spec/acfg/if/scheduler-name.yml                    |  16 +--
 spec/acfg/if/scheduler-priority-affinity-smp.yml   |   2 +-
 spec/acfg/if/scheduler-priority-smp.yml            |   2 +-
 spec/acfg/if/scheduler-priority.yml                |   2 +-
 spec/acfg/if/scheduler-simple-smp.yml              |   2 +-
 spec/acfg/if/scheduler-simple.yml                  |   2 +-
 spec/acfg/if/unified-work-areas.yml                |   2 +-
 spec/acfg/if/unlimited-allocation-size.yml         |   2 +-
 spec/acfg/req/scheduler-cbs.yml                    |   2 +-
 spec/acfg/req/scheduler-edf-smp.yml                |   2 +-
 spec/acfg/req/scheduler-edf.yml                    |   2 +-
 spec/acfg/req/scheduler-priority-affinity-smp.yml  |   2 +-
 spec/acfg/req/scheduler-priority-smp.yml           |   2 +-
 spec/acfg/req/scheduler-priority.yml               |   2 +-
 spec/acfg/req/scheduler-simple-smp.yml             |   2 +-
 spec/acfg/req/scheduler-simple.yml                 |   2 +-
 spec/doc/if/config-scheduler-table.yml             |  12 +++
 spec/doc/if/config-unlimited-objects.yml           |  12 +++
 spec/doc/if/mp-proxies.yml                         |  12 +++
 spec/doc/if/mrsp.yml                               |  12 +++
 spec/doc/if/scheduler-cbs.yml                      |  12 +++
 spec/doc/if/scheduler-concepts.yml                 |  12 +++
 spec/doc/if/scheduler-edf.yml                      |  12 +++
 spec/doc/if/scheduler-priority-simple.yml          |  12 +++
 spec/doc/if/scheduler-priority.yml                 |  12 +++
 spec/doc/if/scheduler-smp-edf.yml                  |  12 +++
 spec/doc/if/scheduler-smp-priority-affinity.yml    |  12 +++
 spec/doc/if/scheduler-smp-priority-simple.yml      |  12 +++
 spec/doc/if/scheduler-smp-priority.yml             |  12 +++
 spec/doc/if/terminate.yml                          |  12 +++
 63 files changed, 298 insertions(+), 156 deletions(-)

diff --git a/rtemsspec/applconfig.py b/rtemsspec/applconfig.py
index 98b6ab7..fde61ff 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 7b6a257..5e530ff 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 6cbd266..57a7b90 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 0000000..24cc714
--- /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 0000000..106ad3e
--- /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 0000000..f84af54
--- /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 0000000..b9f4859
--- /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 237232b..9c7917e 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 f01410c..c2ebd77 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()
  *
diff --git a/spec/acfg/if/group-schedgeneral.yml b/spec/acfg/if/group-schedgeneral.yml
index 64f06e2..beb7a58 100644
--- a/spec/acfg/if/group-schedgeneral.yml
+++ b/spec/acfg/if/group-schedgeneral.yml
@@ -8,15 +8,15 @@ description: |
   configuration does not need any of the configuration options described in this
   section.
 
-  By default, the ${.:/document-reference/scheduler-priority}
+  By default, the ${/doc/if/scheduler-priority:/name}
   algorithm is used in uniprocessor configurations.  In case SMP is enabled and
   the configured maximum processors
   (${max-processors:/name}) is greater
   than one, then the
-  ${.:/document-reference/scheduler-smp-edf}
+  ${/doc/if/scheduler-smp-edf:/name}
   is selected as the default scheduler algorithm.
 
-  For the schedulers provided by RTEMS (see ${.:/document-reference/scheduler-concepts}), the
+  For the schedulers provided by RTEMS (see ${/doc/if/scheduler-concepts:/name}), the
   configuration is straightforward.  All that is required is to define the
   configuration option which specifies which scheduler you want for in your
   application.
diff --git a/spec/acfg/if/max-barriers.yml b/spec/acfg/if/max-barriers.yml
index 5812429..1183a03 100644
--- a/spec/acfg/if/max-barriers.yml
+++ b/spec/acfg/if/max-barriers.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_BARRIERS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-message-queues.yml b/spec/acfg/if/max-message-queues.yml
index d396b07..153223d 100644
--- a/spec/acfg/if/max-message-queues.yml
+++ b/spec/acfg/if/max-message-queues.yml
@@ -25,7 +25,7 @@ links:
 name: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.  You have to account for the memory used to
+  ${/doc/if/config-unlimited-objects:/name}.  You have to account for the memory used to
   store the messages of each message queue, see
   ${message-buffer-memory:/name}.
 type: interface
diff --git a/spec/acfg/if/max-partitions.yml b/spec/acfg/if/max-partitions.yml
index 57e464f..c70018d 100644
--- a/spec/acfg/if/max-partitions.yml
+++ b/spec/acfg/if/max-partitions.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_PARTITIONS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-periods.yml b/spec/acfg/if/max-periods.yml
index 39354c4..621069b 100644
--- a/spec/acfg/if/max-periods.yml
+++ b/spec/acfg/if/max-periods.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_PERIODS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-ports.yml b/spec/acfg/if/max-ports.yml
index f70b135..142d53d 100644
--- a/spec/acfg/if/max-ports.yml
+++ b/spec/acfg/if/max-ports.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_PORTS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-posix-key-value-pairs.yml b/spec/acfg/if/max-posix-key-value-pairs.yml
index 263e4a3..89ee712 100644
--- a/spec/acfg/if/max-posix-key-value-pairs.yml
+++ b/spec/acfg/if/max-posix-key-value-pairs.yml
@@ -29,7 +29,7 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 
   A key value pair is created by ${/c/if/pthread_setspecific:/name} if the value
   is not ${/c/if/null:/name}, otherwise it is deleted.
diff --git a/spec/acfg/if/max-posix-keys.yml b/spec/acfg/if/max-posix-keys.yml
index 1051aaa..6a6f979 100644
--- a/spec/acfg/if/max-posix-keys.yml
+++ b/spec/acfg/if/max-posix-keys.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_KEYS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-posix-message-queues.yml b/spec/acfg/if/max-posix-message-queues.yml
index c5a1e6a..63fe62e 100644
--- a/spec/acfg/if/max-posix-message-queues.yml
+++ b/spec/acfg/if/max-posix-message-queues.yml
@@ -27,7 +27,7 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.  You have to account for the memory used to
+  ${/doc/if/config-unlimited-objects:/name}.  You have to account for the memory used to
   store the messages of each message queue, see
   ${message-buffer-memory:/name}.
 type: interface
diff --git a/spec/acfg/if/max-posix-semaphores.yml b/spec/acfg/if/max-posix-semaphores.yml
index 504dcee..2a34c5d 100644
--- a/spec/acfg/if/max-posix-semaphores.yml
+++ b/spec/acfg/if/max-posix-semaphores.yml
@@ -27,7 +27,7 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 
   Named semaphores are created with ${/c/if/sem_open:/name}.  Semaphores
   initialized with ${/c/if/sem_init:/name} are not affected by this
diff --git a/spec/acfg/if/max-posix-shms.yml b/spec/acfg/if/max-posix-shms.yml
index 56e22c1..8463ecc 100644
--- a/spec/acfg/if/max-posix-shms.yml
+++ b/spec/acfg/if/max-posix-shms.yml
@@ -27,5 +27,5 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_SHMS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-posix-threads.yml b/spec/acfg/if/max-posix-threads.yml
index 814cb4c..1f8a9eb 100644
--- a/spec/acfg/if/max-posix-threads.yml
+++ b/spec/acfg/if/max-posix-threads.yml
@@ -25,7 +25,7 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_THREADS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 
   This calculations for the required memory in the RTEMS Workspace for threads
   assume that each thread has a minimum stack size and has floating point
diff --git a/spec/acfg/if/max-posix-timers.yml b/spec/acfg/if/max-posix-timers.yml
index 0ada878..e55a371 100644
--- a/spec/acfg/if/max-posix-timers.yml
+++ b/spec/acfg/if/max-posix-timers.yml
@@ -27,7 +27,7 @@ links:
 name: CONFIGURE_MAXIMUM_POSIX_TIMERS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 
   Timers are only available if RTEMS was built with the
   ``--enable-posix`` build configuration option.
diff --git a/spec/acfg/if/max-priority.yml b/spec/acfg/if/max-priority.yml
index d6e553f..cbb0cb2 100644
--- a/spec/acfg/if/max-priority.yml
+++ b/spec/acfg/if/max-priority.yml
@@ -6,14 +6,14 @@ default-value: 255
 description: |
   For the following schedulers
 
-  * ${.:/document-reference/scheduler-priority}, which is the default in uniprocessor
+  * ${/doc/if/scheduler-priority:/name}, which is the default in uniprocessor
     configurations and can be configured through the
     ${scheduler-priority:/name} configuration option,
 
-  * ${.:/document-reference/scheduler-smp-priority} which can be configured through the
+  * ${/doc/if/scheduler-smp-priority:/name} which can be configured through the
     ${scheduler-priority-smp:/name} configuration option, and
 
-  * ${.:/document-reference/scheduler-smp-priority-affinity} which can be configured through the
+  * ${/doc/if/scheduler-smp-priority-affinity:/name} which can be configured through the
     ${scheduler-priority-affinity-smp:/name} configuration option
 
   this configuration option specifies the maximum numeric priority of any task
diff --git a/spec/acfg/if/max-regions.yml b/spec/acfg/if/max-regions.yml
index 686b911..4b493c4 100644
--- a/spec/acfg/if/max-regions.yml
+++ b/spec/acfg/if/max-regions.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_REGIONS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/max-semaphores.yml b/spec/acfg/if/max-semaphores.yml
index 6808d38..54cf8d8 100644
--- a/spec/acfg/if/max-semaphores.yml
+++ b/spec/acfg/if/max-semaphores.yml
@@ -25,9 +25,9 @@ links:
 name: CONFIGURE_MAXIMUM_SEMAPHORES
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 
   In SMP configurations, the size of a Semaphore Control Block depends on the
-  scheduler count (see ${.:/document-reference/config-scheduler-table}).  The semaphores
-  using the ${.:/document-reference/mrsp} need a ceiling priority per scheduler.
+  scheduler count (see ${/doc/if/config-scheduler-table:/name}).  The semaphores
+  using the ${/doc/if/mrsp:/name} need a ceiling priority per scheduler.
 type: interface
diff --git a/spec/acfg/if/max-tasks.yml b/spec/acfg/if/max-tasks.yml
index 11f4413..c3b416e 100644
--- a/spec/acfg/if/max-tasks.yml
+++ b/spec/acfg/if/max-tasks.yml
@@ -27,7 +27,7 @@ links:
 name: CONFIGURE_MAXIMUM_TASKS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 
   The calculations for the required memory in the RTEMS Workspace for tasks
   assume that each task has a minimum stack size and has floating point
diff --git a/spec/acfg/if/max-timers.yml b/spec/acfg/if/max-timers.yml
index c6fc374..ba0d673 100644
--- a/spec/acfg/if/max-timers.yml
+++ b/spec/acfg/if/max-timers.yml
@@ -25,5 +25,5 @@ links:
 name: CONFIGURE_MAXIMUM_TIMERS
 notes: |
   This object class can be configured in unlimited allocation mode, see
-  ${.:/document-reference/config-unlimited-objects}.
+  ${/doc/if/config-unlimited-objects:/name}.
 type: interface
diff --git a/spec/acfg/if/mp-max-proxies.yml b/spec/acfg/if/mp-max-proxies.yml
index ca06df5..002eb53 100644
--- a/spec/acfg/if/mp-max-proxies.yml
+++ b/spec/acfg/if/mp-max-proxies.yml
@@ -24,7 +24,7 @@ notes: |
   Since a proxy is used to represent a remote task/thread which is blocking
   on this node. This configuration parameter reflects the maximum number of
   remote tasks/threads which can be blocked on objects on this node, see
-  ${.:/document-reference/mp-proxies}.
+  ${/doc/if/mp-proxies:/name}.
 
   This configuration option is only evaluated if
   ${mp-appl:/name} is defined.
diff --git a/spec/acfg/if/record-fatal-dump-base64-zlib.yml b/spec/acfg/if/record-fatal-dump-base64-zlib.yml
index be943d7..fb5eeea 100644
--- a/spec/acfg/if/record-fatal-dump-base64-zlib.yml
+++ b/spec/acfg/if/record-fatal-dump-base64-zlib.yml
@@ -10,7 +10,7 @@ description: |
   * and ${record-per-processor-items:/name} is properly defined,
 
   then the event records are compressed by zlib and dumped in Base64 encoding
-  in a fatal error extension (see ${.:/document-reference/terminate}).
+  in a fatal error extension (see ${/doc/if/terminate:/name}).
 enabled-by: true
 index-entries: []
 interface-type: appl-config-option
diff --git a/spec/acfg/if/record-fatal-dump-base64.yml b/spec/acfg/if/record-fatal-dump-base64.yml
index cdc8348..a8744bc 100644
--- a/spec/acfg/if/record-fatal-dump-base64.yml
+++ b/spec/acfg/if/record-fatal-dump-base64.yml
@@ -12,7 +12,7 @@ description: |
   * and ${record-fatal-dump-base64-zlib:/name} is undefined,
 
   then the event records are dumped in Base64 encoding in a fatal error
-  extension (see ${.:/document-reference/terminate}).
+  extension (see ${/doc/if/terminate:/name}).
 enabled-by: true
 index-entries: []
 interface-type: appl-config-option
diff --git a/spec/acfg/if/scheduler-cbs.yml b/spec/acfg/if/scheduler-cbs.yml
index 782b2fe..854884c 100644
--- a/spec/acfg/if/scheduler-cbs.yml
+++ b/spec/acfg/if/scheduler-cbs.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-cbs}
+  ${/doc/if/scheduler-cbs:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-edf-smp.yml b/spec/acfg/if/scheduler-edf-smp.yml
index 0423fe9..7191f76 100644
--- a/spec/acfg/if/scheduler-edf-smp.yml
+++ b/spec/acfg/if/scheduler-edf-smp.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-smp-edf}
+  ${/doc/if/scheduler-smp-edf:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-edf.yml b/spec/acfg/if/scheduler-edf.yml
index eb40f7b..03215b0 100644
--- a/spec/acfg/if/scheduler-edf.yml
+++ b/spec/acfg/if/scheduler-edf.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-edf}
+  ${/doc/if/scheduler-edf:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-name.yml b/spec/acfg/if/scheduler-name.yml
index 1a5510f..ecaefb5 100644
--- a/spec/acfg/if/scheduler-name.yml
+++ b/spec/acfg/if/scheduler-name.yml
@@ -5,21 +5,21 @@ copyrights:
 default-value: |
   The default value is
 
-  * ``"MEDF"`` for the ${.:/document-reference/scheduler-smp-edf},
+  * ``"MEDF"`` for the ${/doc/if/scheduler-smp-edf:/name},
 
-  * ``"MPA "`` for the ${.:/document-reference/scheduler-smp-priority-affinity},
+  * ``"MPA "`` for the ${/doc/if/scheduler-smp-priority-affinity:/name},
 
-  * ``"MPD "`` for the ${.:/document-reference/scheduler-smp-priority},
+  * ``"MPD "`` for the ${/doc/if/scheduler-smp-priority:/name},
 
-  * ``"MPS "`` for the ${.:/document-reference/scheduler-smp-priority-simple},
+  * ``"MPS "`` for the ${/doc/if/scheduler-smp-priority-simple:/name},
 
-  * ``"UCBS"`` for the ${.:/document-reference/scheduler-cbs},
+  * ``"UCBS"`` for the ${/doc/if/scheduler-cbs:/name},
 
-  * ``"UEDF"`` for the ${.:/document-reference/scheduler-edf},
+  * ``"UEDF"`` for the ${/doc/if/scheduler-edf:/name},
 
-  * ``"UPD "`` for the ${.:/document-reference/scheduler-priority}, and
+  * ``"UPD "`` for the ${/doc/if/scheduler-priority:/name}, and
 
-  * ``"UPS "`` for the ${.:/document-reference/scheduler-priority-simple}.
+  * ``"UPS "`` for the ${/doc/if/scheduler-priority-simple:/name}.
 description: |
   The value of this configuration option defines the name of the default
   scheduler.
diff --git a/spec/acfg/if/scheduler-priority-affinity-smp.yml b/spec/acfg/if/scheduler-priority-affinity-smp.yml
index c4777eb..cfdba1b 100644
--- a/spec/acfg/if/scheduler-priority-affinity-smp.yml
+++ b/spec/acfg/if/scheduler-priority-affinity-smp.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-smp-priority-affinity}
+  ${/doc/if/scheduler-smp-priority-affinity:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-priority-smp.yml b/spec/acfg/if/scheduler-priority-smp.yml
index 5c9a601..266f5f4 100644
--- a/spec/acfg/if/scheduler-priority-smp.yml
+++ b/spec/acfg/if/scheduler-priority-smp.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-smp-priority}
+  ${/doc/if/scheduler-smp-priority:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-priority.yml b/spec/acfg/if/scheduler-priority.yml
index 488c2aa..7d212e1 100644
--- a/spec/acfg/if/scheduler-priority.yml
+++ b/spec/acfg/if/scheduler-priority.yml
@@ -5,7 +5,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-priority}
+  ${/doc/if/scheduler-priority:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-simple-smp.yml b/spec/acfg/if/scheduler-simple-smp.yml
index 7e64dcb..b9e3b67 100644
--- a/spec/acfg/if/scheduler-simple-smp.yml
+++ b/spec/acfg/if/scheduler-simple-smp.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-smp-priority-simple}
+  ${/doc/if/scheduler-smp-priority-simple:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/scheduler-simple.yml b/spec/acfg/if/scheduler-simple.yml
index 8f96e91..f1fe555 100644
--- a/spec/acfg/if/scheduler-simple.yml
+++ b/spec/acfg/if/scheduler-simple.yml
@@ -4,7 +4,7 @@ copyrights:
 - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 description: |
   In case this configuration option is defined, then the
-  ${.:/document-reference/scheduler-priority-simple}
+  ${/doc/if/scheduler-priority-simple:/name}
   algorithm is made available to the application.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/if/unified-work-areas.yml b/spec/acfg/if/unified-work-areas.yml
index 15c9418..024d189 100644
--- a/spec/acfg/if/unified-work-areas.yml
+++ b/spec/acfg/if/unified-work-areas.yml
@@ -28,7 +28,7 @@ notes: |
   pool is very undesirable.
 
   In high memory environments, this is desirable when you want to use the
-  ${.:/document-reference/config-unlimited-objects} option.  You will be able to create objects
+  ${/doc/if/config-unlimited-objects:/name} option.  You will be able to create objects
   until you run out of all available memory rather then just until you run out
   of RTEMS Workspace.
 type: interface
diff --git a/spec/acfg/if/unlimited-allocation-size.yml b/spec/acfg/if/unlimited-allocation-size.yml
index 3d89654..25909a0 100644
--- a/spec/acfg/if/unlimited-allocation-size.yml
+++ b/spec/acfg/if/unlimited-allocation-size.yml
@@ -6,7 +6,7 @@ default-value: 8
 description: |
   If ${unlimited-objects:/name} is defined, then the value of this
   configuration option defines the default objects maximum of all object
-  classes supporting ${.:/document-reference/config-unlimited-objects} to
+  classes supporting ${/doc/if/config-unlimited-objects:/name} to
   ``rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )``.
 enabled-by: true
 index-entries: []
diff --git a/spec/acfg/req/scheduler-cbs.yml b/spec/acfg/req/scheduler-cbs.yml
index 742a483..c713137 100644
--- a/spec/acfg/req/scheduler-cbs.yml
+++ b/spec/acfg/req/scheduler-cbs.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-cbs} algorithm is made available
+  that the ${/doc/if/scheduler-cbs:/name} algorithm is made available
   to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-edf-smp.yml b/spec/acfg/req/scheduler-edf-smp.yml
index 4f92d71..dcc80cb 100644
--- a/spec/acfg/req/scheduler-edf-smp.yml
+++ b/spec/acfg/req/scheduler-edf-smp.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-smp-edf} algorithm is made
+  that the ${/doc/if/scheduler-smp-edf:/name} algorithm is made
   available to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-edf.yml b/spec/acfg/req/scheduler-edf.yml
index 91d4beb..cf9df5b 100644
--- a/spec/acfg/req/scheduler-edf.yml
+++ b/spec/acfg/req/scheduler-edf.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-edf} algorithm is made available
+  that the ${/doc/if/scheduler-edf:/name} algorithm is made available
   to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-priority-affinity-smp.yml b/spec/acfg/req/scheduler-priority-affinity-smp.yml
index 061a124..ec3034b 100644
--- a/spec/acfg/req/scheduler-priority-affinity-smp.yml
+++ b/spec/acfg/req/scheduler-priority-affinity-smp.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-smp-priority-affinity} algorithm
+  that the ${/doc/if/scheduler-smp-priority-affinity:/name} algorithm
   is made available to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-priority-smp.yml b/spec/acfg/req/scheduler-priority-smp.yml
index 1e5b71e..968955e 100644
--- a/spec/acfg/req/scheduler-priority-smp.yml
+++ b/spec/acfg/req/scheduler-priority-smp.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-smp-priority} algorithm is made
+  that the ${/doc/if/scheduler-smp-priority:/name} algorithm is made
   available to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-priority.yml b/spec/acfg/req/scheduler-priority.yml
index 981e9e3..e3a5e71 100644
--- a/spec/acfg/req/scheduler-priority.yml
+++ b/spec/acfg/req/scheduler-priority.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-priority} algorithm is made
+  that the ${/doc/if/scheduler-priority:/name} algorithm is made
   available to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-simple-smp.yml b/spec/acfg/req/scheduler-simple-smp.yml
index 015f1ed..f2fee46 100644
--- a/spec/acfg/req/scheduler-simple-smp.yml
+++ b/spec/acfg/req/scheduler-simple-smp.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-smp-priority-simple} algorithm is
+  that the ${/doc/if/scheduler-smp-priority-simple:/name} algorithm is
   made available to the application.
 type: requirement
diff --git a/spec/acfg/req/scheduler-simple.yml b/spec/acfg/req/scheduler-simple.yml
index 2b722fe..fb037d1 100644
--- a/spec/acfg/req/scheduler-simple.yml
+++ b/spec/acfg/req/scheduler-simple.yml
@@ -11,6 +11,6 @@ references: []
 requirement-type: non-functional
 text: |
   The system shall provide an application configuration option which enables
-  that the ${.:/document-reference/scheduler-priority-simple} algorithm is made
+  that the ${/doc/if/scheduler-priority-simple:/name} algorithm is made
   available to the application.
 type: requirement
diff --git a/spec/doc/if/config-scheduler-table.yml b/spec/doc/if/config-scheduler-table.yml
new file mode 100644
index 0000000..0974e69
--- /dev/null
+++ b/spec/doc/if/config-scheduler-table.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Configuration Step 3 - Scheduler Table
+references:
+  c-user: ConfigurationSchedulerTable
+  url: https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html#configuration-step-3-scheduler-table
+type: interface
diff --git a/spec/doc/if/config-unlimited-objects.yml b/spec/doc/if/config-unlimited-objects.yml
new file mode 100644
index 0000000..17c895f
--- /dev/null
+++ b/spec/doc/if/config-unlimited-objects.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Unlimited Objects
+references:
+  c-user: ConfigUnlimitedObjects
+  url: https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects
+type: interface
diff --git a/spec/doc/if/mp-proxies.yml b/spec/doc/if/mp-proxies.yml
new file mode 100644
index 0000000..4012286
--- /dev/null
+++ b/spec/doc/if/mp-proxies.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Proxies
+references:
+  c-user: MPCIProxies
+  url: https://docs.rtems.org/branches/master/c-user/multiprocessing.html#proxies
+type: interface
diff --git a/spec/doc/if/mrsp.yml b/spec/doc/if/mrsp.yml
new file mode 100644
index 0000000..4c98d9c
--- /dev/null
+++ b/spec/doc/if/mrsp.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Multiprocessor Resource Sharing Protocol (MrsP)
+references:
+  c-user: MrsP
+  url: https://docs.rtems.org/branches/master/c-user/key_concepts.html#multiprocessor-resource-sharing-protocol-mrsp
+type: interface
diff --git a/spec/doc/if/scheduler-cbs.yml b/spec/doc/if/scheduler-cbs.yml
new file mode 100644
index 0000000..06dd920
--- /dev/null
+++ b/spec/doc/if/scheduler-cbs.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Constant Bandwidth Server Scheduling (CBS)
+references:
+  c-user: SchedulerCBS
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#constant-bandwidth-server-scheduling-cbs
+type: interface
diff --git a/spec/doc/if/scheduler-concepts.yml b/spec/doc/if/scheduler-concepts.yml
new file mode 100644
index 0000000..40ae495
--- /dev/null
+++ b/spec/doc/if/scheduler-concepts.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Scheduling Concepts
+references:
+  c-user: RTEMSAPIClassicScheduler
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/index.html
+type: interface
diff --git a/spec/doc/if/scheduler-edf.yml b/spec/doc/if/scheduler-edf.yml
new file mode 100644
index 0000000..bd8aa1b
--- /dev/null
+++ b/spec/doc/if/scheduler-edf.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Earliest Deadline First Scheduler
+references:
+  c-user: SchedulerEDF
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#earliest-deadline-first-scheduler
+type: interface
diff --git a/spec/doc/if/scheduler-priority-simple.yml b/spec/doc/if/scheduler-priority-simple.yml
new file mode 100644
index 0000000..53882bc
--- /dev/null
+++ b/spec/doc/if/scheduler-priority-simple.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Simple Priority Scheduler
+references:
+  c-user: SchedulerPrioritySimple
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#simple-priority-scheduler
+type: interface
diff --git a/spec/doc/if/scheduler-priority.yml b/spec/doc/if/scheduler-priority.yml
new file mode 100644
index 0000000..f6b4264
--- /dev/null
+++ b/spec/doc/if/scheduler-priority.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Deterministic Priority Scheduler
+references:
+  c-user: SchedulerPriority
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler
+type: interface
diff --git a/spec/doc/if/scheduler-smp-edf.yml b/spec/doc/if/scheduler-smp-edf.yml
new file mode 100644
index 0000000..0b61454
--- /dev/null
+++ b/spec/doc/if/scheduler-smp-edf.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Earliest Deadline First SMP Scheduler
+references:
+  c-user: SchedulerSMPEDF
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler
+type: interface
diff --git a/spec/doc/if/scheduler-smp-priority-affinity.yml b/spec/doc/if/scheduler-smp-priority-affinity.yml
new file mode 100644
index 0000000..ded97f5
--- /dev/null
+++ b/spec/doc/if/scheduler-smp-priority-affinity.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Arbitrary Processor Affinity Priority SMP Scheduler
+references:
+  c-user: SchedulerSMPPriorityAffinity
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler
+type: interface
diff --git a/spec/doc/if/scheduler-smp-priority-simple.yml b/spec/doc/if/scheduler-smp-priority-simple.yml
new file mode 100644
index 0000000..3ed6f09
--- /dev/null
+++ b/spec/doc/if/scheduler-smp-priority-simple.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Simple Priority SMP Scheduler
+references:
+  c-user: SchedulerSMPPrioritySimple
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#simple-priority-smp-scheduler
+type: interface
diff --git a/spec/doc/if/scheduler-smp-priority.yml b/spec/doc/if/scheduler-smp-priority.yml
new file mode 100644
index 0000000..a2f1716
--- /dev/null
+++ b/spec/doc/if/scheduler-smp-priority.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Deterministic Priority SMP Scheduler
+references:
+  c-user: SchedulerSMPPriority
+  url: https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler
+type: interface
diff --git a/spec/doc/if/terminate.yml b/spec/doc/if/terminate.yml
new file mode 100644
index 0000000..c33499f
--- /dev/null
+++ b/spec/doc/if/terminate.yml
@@ -0,0 +1,12 @@
+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
+index-entries: []
+interface-type: unspecified-group
+links: []
+name: Announcing a Fatal Error
+references:
+  c-user: Terminate
+  url: https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error
+type: interface



More information about the vc mailing list