[rtems-central commit] spec: Add external interfaces to a group

Sebastian Huber sebh at rtems.org
Fri Sep 2 11:24:35 UTC 2022


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Sep  2 07:40:52 2022 +0200

spec: Add external interfaces to a group

Remove interface container item type.

---

 config.yml                                         |  6 +++---
 rtemsspec/interface.py                             | 10 ++++-----
 rtemsspec/tests/spec-interface/asm.yml             |  4 ++--
 .../tests/spec-interface/command-line-other.yml    | 17 +++++++++++++++
 rtemsspec/tests/spec-interface/command-line.yml    |  2 +-
 rtemsspec/tests/spec-interface/smp.yml             |  4 ++--
 rtemsspec/tests/spec/interface-more.yml            |  4 ----
 spec/build-options/if/ada.yml                      |  6 +++---
 spec/build-options/if/container.yml                | 10 ---------
 spec/build-options/if/cpuopts.yml                  |  2 ++
 spec/build-options/if/debug.yml                    |  6 +++---
 spec/build-options/if/drvmgr.yml                   |  6 +++---
 spec/build-options/if/group.yml                    | 15 +++++++++++++
 spec/build-options/if/multiprocessing.yml          |  6 +++---
 spec/build-options/if/networking.yml               |  6 +++---
 spec/build-options/if/paravirt.yml                 |  6 +++---
 spec/build-options/if/posix.yml                    |  6 +++---
 spec/build-options/if/profiling.yml                |  6 +++---
 spec/build-options/if/smp.yml                      |  6 +++---
 spec/compiler/if/asm.yml                           |  4 ++--
 spec/compiler/if/builtin-choose-expr.yml           |  4 ++--
 spec/compiler/if/builtin-expect.yml                |  4 ++--
 spec/compiler/if/builtin-return-address.yml        |  4 ++--
 spec/compiler/if/builtin-types-compatible-p.yml    |  4 ++--
 spec/compiler/if/builtin-unreachable.yml           |  4 ++--
 spec/compiler/if/container.yml                     | 10 ---------
 spec/compiler/if/coverity.yml                      |  6 +++---
 spec/compiler/if/cplusplus.yml                     |  6 +++---
 spec/compiler/if/gnuc.yml                          |  6 +++---
 spec/compiler/if/group.yml                         | 15 +++++++++++++
 spec/compiler/if/stdc-version.yml                  |  4 ++--
 spec/compiler/if/typeof.yml                        |  4 ++--
 spec/compiler/if/user-label-prefix.yml             |  6 +++---
 spec/doc/if/config-scheduler-clustered.yml         |  2 ++
 spec/doc/if/config-scheduler-table.yml             |  2 ++
 spec/doc/if/config-unlimited-objects.yml           |  2 ++
 spec/doc/if/group.yml                              | 15 +++++++++++++
 spec/doc/if/mp-proxies.yml                         |  2 ++
 spec/doc/if/mrsp.yml                               |  2 ++
 spec/doc/if/scheduler-cbs.yml                      |  2 ++
 spec/doc/if/scheduler-concepts.yml                 |  2 ++
 spec/doc/if/scheduler-edf.yml                      |  2 ++
 spec/doc/if/scheduler-priority-simple.yml          |  2 ++
 spec/doc/if/scheduler-priority.yml                 |  2 ++
 spec/doc/if/scheduler-smp-edf.yml                  |  2 ++
 spec/doc/if/scheduler-smp-priority-affinity.yml    |  2 ++
 spec/doc/if/scheduler-smp-priority-simple.yml      |  2 ++
 spec/doc/if/scheduler-smp-priority.yml             |  2 ++
 spec/doc/if/terminate.yml                          |  2 ++
 spec/req/external-interface.yml                    | 14 ++++++++++++
 spec/spec/interface-container.yml                  | 25 ----------------------
 spec/spec/interface-domain.yml                     |  5 ++---
 spec/user/if/asm.yml                               |  6 +++---
 spec/user/if/container.yml                         | 10 ---------
 spec/user/if/false.yml                             |  6 +++---
 spec/user/if/group.yml                             | 15 +++++++++++++
 spec/user/if/true.yml                              |  6 +++---
 57 files changed, 202 insertions(+), 139 deletions(-)

diff --git a/config.yml b/config.yml
index 8c55f09f..bbf8c316 100644
--- a/config.yml
+++ b/config.yml
@@ -114,9 +114,9 @@ interface:
   enabled:
   - RTEMS_QUAL
   item-level-interfaces:
-  - /build-options/if/container
-  - /compiler/if/container
-  - /user/if/container
+  - /build-options/if/group
+  - /compiler/if/group
+  - /user/if/group
   domains:
     /if/domain: modules/rtems
     /dev/if/domain: modules/rtems
diff --git a/rtemsspec/interface.py b/rtemsspec/interface.py
index 882c442a..949c51f6 100644
--- a/rtemsspec/interface.py
+++ b/rtemsspec/interface.py
@@ -723,8 +723,7 @@ class _HeaderFile:
     def add_includes(self, item: Item) -> None:
         """ Adds the includes of the item to the header file includes. """
         for parent in item.parents("interface-placement"):
-            if parent.type == "interface/header-file":
-                self._includes.append(parent)
+            self._includes.append(parent)
 
     def _add_child(self, item: Item) -> None:
         self._nodes[item.uid] = Node(self, item)
@@ -836,9 +835,10 @@ def _gather_enabled_by_defined(item_level_interfaces: List[str],
                                item_cache: ItemCache) -> Dict[str, str]:
     enabled_by_defined = {}  # type: Dict[str, str]
     for uid in item_level_interfaces:
-        for child in item_cache[uid].children("interface-placement"):
-            define = f"defined(${{{child.uid}:/name}})"
-            enabled_by_defined[child["name"]] = define
+        for child in item_cache[uid].children("interface-ingroup"):
+            if child.type == "interface/unspecified-define":
+                define = f"defined(${{{child.uid}:/name}})"
+                enabled_by_defined[child["name"]] = define
     return enabled_by_defined
 
 
diff --git a/rtemsspec/tests/spec-interface/asm.yml b/rtemsspec/tests/spec-interface/asm.yml
index 2e56eab5..ec45b32a 100644
--- a/rtemsspec/tests/spec-interface/asm.yml
+++ b/rtemsspec/tests/spec-interface/asm.yml
@@ -8,9 +8,9 @@ definition:
 description: null
 enabled-by: true
 index-entries: []
-interface-type: define
+interface-type: unspecified-define
 links:
-- role: interface-placement
+- role: interface-ingroup
   uid: command-line
 - role: other
   uid: command-line
diff --git a/rtemsspec/tests/spec-interface/command-line-other.yml b/rtemsspec/tests/spec-interface/command-line-other.yml
new file mode 100644
index 00000000..7b317f9f
--- /dev/null
+++ b/rtemsspec/tests/spec-interface/command-line-other.yml
@@ -0,0 +1,17 @@
+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)
+definition:
+  defaults: null
+  variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: unspecified-function
+links:
+- role: interface-ingroup
+  uid: command-line
+name: func
+notes: null
+type: interface
diff --git a/rtemsspec/tests/spec-interface/command-line.yml b/rtemsspec/tests/spec-interface/command-line.yml
index 1e343f08..4f5144e2 100644
--- a/rtemsspec/tests/spec-interface/command-line.yml
+++ b/rtemsspec/tests/spec-interface/command-line.yml
@@ -3,7 +3,7 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: container
+interface-type: group
 links:
 - role: interface-placement
   uid: domain-command-line
diff --git a/rtemsspec/tests/spec-interface/smp.yml b/rtemsspec/tests/spec-interface/smp.yml
index a3765196..82ab5c37 100644
--- a/rtemsspec/tests/spec-interface/smp.yml
+++ b/rtemsspec/tests/spec-interface/smp.yml
@@ -3,9 +3,9 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: define
+interface-type: unspecified-define
 links:
-- role: interface-placement
+- role: interface-ingroup
   uid: command-line
 name: RTEMS_SMP
 type: interface
diff --git a/rtemsspec/tests/spec/interface-more.yml b/rtemsspec/tests/spec/interface-more.yml
index aff1b49a..9719d9b9 100644
--- a/rtemsspec/tests/spec/interface-more.yml
+++ b/rtemsspec/tests/spec/interface-more.yml
@@ -17,10 +17,6 @@ links:
   spec-key: interface-type
   spec-value: union
   uid: interface
-- role: spec-refinement
-  spec-key: interface-type
-  spec-value: container
-  uid: interface
 - role: spec-refinement
   spec-key: interface-type
   spec-value: define
diff --git a/spec/build-options/if/ada.yml b/spec/build-options/if/ada.yml
index 5922d0a9..7bdfd63c 100644
--- a/spec/build-options/if/ada.yml
+++ b/spec/build-options/if/ada.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __RTEMS_ADA__
 references: []
 type: interface
diff --git a/spec/build-options/if/container.yml b/spec/build-options/if/container.yml
deleted file mode 100644
index 6a02d235..00000000
--- a/spec/build-options/if/container.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-index-entries: []
-interface-type: container
-links:
-- role: interface-placement
-  uid: domain
-type: interface
diff --git a/spec/build-options/if/cpuopts.yml b/spec/build-options/if/cpuopts.yml
index 2d2b4d46..c011329c 100644
--- a/spec/build-options/if/cpuopts.yml
+++ b/spec/build-options/if/cpuopts.yml
@@ -8,6 +8,8 @@ interface-type: header-file
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 path: rtems/score/cpuopts.h
 prefix: ''
 type: interface
diff --git a/spec/build-options/if/debug.yml b/spec/build-options/if/debug.yml
index 6f1b9227..0d787a52 100644
--- a/spec/build-options/if/debug.yml
+++ b/spec/build-options/if/debug.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_DEBUG
 references: []
 type: interface
diff --git a/spec/build-options/if/drvmgr.yml b/spec/build-options/if/drvmgr.yml
index 226790f5..ddb96579 100644
--- a/spec/build-options/if/drvmgr.yml
+++ b/spec/build-options/if/drvmgr.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_DRVMGR_STARTUP
 references: []
 type: interface
diff --git a/spec/build-options/if/group.yml b/spec/build-options/if/group.yml
new file mode 100644
index 00000000..e12994f6
--- /dev/null
+++ b/spec/build-options/if/group.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+identifier: BuildOptions
+links:
+- role: requirement-refinement
+  uid: /req/external-interface
+non-functional-type: design-group
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The used build options shall be specified.
+type: requirement
diff --git a/spec/build-options/if/multiprocessing.yml b/spec/build-options/if/multiprocessing.yml
index 828d5f3a..198bc242 100644
--- a/spec/build-options/if/multiprocessing.yml
+++ b/spec/build-options/if/multiprocessing.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_MULTIPROCESSING
 references: []
 type: interface
diff --git a/spec/build-options/if/networking.yml b/spec/build-options/if/networking.yml
index 4a99a195..4935cccb 100644
--- a/spec/build-options/if/networking.yml
+++ b/spec/build-options/if/networking.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_NETWORKING
 references: []
 type: interface
diff --git a/spec/build-options/if/paravirt.yml b/spec/build-options/if/paravirt.yml
index a467e74b..1236091b 100644
--- a/spec/build-options/if/paravirt.yml
+++ b/spec/build-options/if/paravirt.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_PARAVIRT
 references: []
 type: interface
diff --git a/spec/build-options/if/posix.yml b/spec/build-options/if/posix.yml
index 8054e020..2f573263 100644
--- a/spec/build-options/if/posix.yml
+++ b/spec/build-options/if/posix.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_POSIX_API
 references: []
 type: interface
diff --git a/spec/build-options/if/profiling.yml b/spec/build-options/if/profiling.yml
index 809987bf..95e4d005 100644
--- a/spec/build-options/if/profiling.yml
+++ b/spec/build-options/if/profiling.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_PROFILING
 references: []
 type: interface
diff --git a/spec/build-options/if/smp.yml b/spec/build-options/if/smp.yml
index 9ec1fb9b..0639ffea 100644
--- a/spec/build-options/if/smp.yml
+++ b/spec/build-options/if/smp.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: RTEMS_SMP
 references: []
 type: interface
diff --git a/spec/compiler/if/asm.yml b/spec/compiler/if/asm.yml
index 3ac1086b..293da75c 100644
--- a/spec/compiler/if/asm.yml
+++ b/spec/compiler/if/asm.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __asm__
 references: []
 type: interface
diff --git a/spec/compiler/if/builtin-choose-expr.yml b/spec/compiler/if/builtin-choose-expr.yml
index 5a8413c3..394730f4 100644
--- a/spec/compiler/if/builtin-choose-expr.yml
+++ b/spec/compiler/if/builtin-choose-expr.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __builtin_choose_expr
 references: []
 type: interface
diff --git a/spec/compiler/if/builtin-expect.yml b/spec/compiler/if/builtin-expect.yml
index ae1e0503..e195a27d 100644
--- a/spec/compiler/if/builtin-expect.yml
+++ b/spec/compiler/if/builtin-expect.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __builtin_expect
 references: []
 type: interface
diff --git a/spec/compiler/if/builtin-return-address.yml b/spec/compiler/if/builtin-return-address.yml
index b68d28e0..b5ff188d 100644
--- a/spec/compiler/if/builtin-return-address.yml
+++ b/spec/compiler/if/builtin-return-address.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __builtin_return_address
 references: []
 type: interface
diff --git a/spec/compiler/if/builtin-types-compatible-p.yml b/spec/compiler/if/builtin-types-compatible-p.yml
index 988221f0..ca3565f3 100644
--- a/spec/compiler/if/builtin-types-compatible-p.yml
+++ b/spec/compiler/if/builtin-types-compatible-p.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __builtin_types_compatible_p
 references: []
 type: interface
diff --git a/spec/compiler/if/builtin-unreachable.yml b/spec/compiler/if/builtin-unreachable.yml
index 8e37900a..e2c4b937 100644
--- a/spec/compiler/if/builtin-unreachable.yml
+++ b/spec/compiler/if/builtin-unreachable.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __builtin_unreachable
 references: []
 type: interface
diff --git a/spec/compiler/if/container.yml b/spec/compiler/if/container.yml
deleted file mode 100644
index 6a02d235..00000000
--- a/spec/compiler/if/container.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-index-entries: []
-interface-type: container
-links:
-- role: interface-placement
-  uid: domain
-type: interface
diff --git a/spec/compiler/if/coverity.yml b/spec/compiler/if/coverity.yml
index 2fe4d0dd..05104ffa 100644
--- a/spec/compiler/if/coverity.yml
+++ b/spec/compiler/if/coverity.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __COVERITY__
 references: []
 type: interface
diff --git a/spec/compiler/if/cplusplus.yml b/spec/compiler/if/cplusplus.yml
index 390cdeff..7deb19e4 100644
--- a/spec/compiler/if/cplusplus.yml
+++ b/spec/compiler/if/cplusplus.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __cplusplus
 references: []
 type: interface
diff --git a/spec/compiler/if/gnuc.yml b/spec/compiler/if/gnuc.yml
index f232b5e7..c9082f6b 100644
--- a/spec/compiler/if/gnuc.yml
+++ b/spec/compiler/if/gnuc.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __GNUC__
 references: []
 type: interface
diff --git a/spec/compiler/if/group.yml b/spec/compiler/if/group.yml
new file mode 100644
index 00000000..94f10e98
--- /dev/null
+++ b/spec/compiler/if/group.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+identifier: Compiler
+links:
+- role: requirement-refinement
+  uid: /req/external-interface
+non-functional-type: design-group
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The used compiler interfaces shall be specified.
+type: requirement
diff --git a/spec/compiler/if/stdc-version.yml b/spec/compiler/if/stdc-version.yml
index 0654b742..1a6d0f32 100644
--- a/spec/compiler/if/stdc-version.yml
+++ b/spec/compiler/if/stdc-version.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __STDC_VERSION__
 references:
 - identifier: https://en.cppreference.com/w/c/preprocessor/replace
diff --git a/spec/compiler/if/typeof.yml b/spec/compiler/if/typeof.yml
index 752b112b..340e0b05 100644
--- a/spec/compiler/if/typeof.yml
+++ b/spec/compiler/if/typeof.yml
@@ -5,8 +5,8 @@ enabled-by: true
 index-entries: []
 interface-type: unspecified
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __typeof__
 references: []
 type: interface
diff --git a/spec/compiler/if/user-label-prefix.yml b/spec/compiler/if/user-label-prefix.yml
index 5420ede5..a5af7267 100644
--- a/spec/compiler/if/user-label-prefix.yml
+++ b/spec/compiler/if/user-label-prefix.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: __USER_LABEL_PREFIX__
 references: []
 type: interface
diff --git a/spec/doc/if/config-scheduler-clustered.yml b/spec/doc/if/config-scheduler-clustered.yml
index 3a3a3dce..2e46575d 100644
--- a/spec/doc/if/config-scheduler-clustered.yml
+++ b/spec/doc/if/config-scheduler-clustered.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Clustered Scheduler Configuration
 references:
 - identifier: ConfigurationSchedulersClustered
diff --git a/spec/doc/if/config-scheduler-table.yml b/spec/doc/if/config-scheduler-table.yml
index c7dcb078..117171bb 100644
--- a/spec/doc/if/config-scheduler-table.yml
+++ b/spec/doc/if/config-scheduler-table.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Configuration Step 3 - Scheduler Table
 references:
 - identifier: ConfigurationSchedulerTable
diff --git a/spec/doc/if/config-unlimited-objects.yml b/spec/doc/if/config-unlimited-objects.yml
index 0a8d2e44..49008b6c 100644
--- a/spec/doc/if/config-unlimited-objects.yml
+++ b/spec/doc/if/config-unlimited-objects.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Unlimited Objects
 references:
 - identifier: ConfigUnlimitedObjects
diff --git a/spec/doc/if/group.yml b/spec/doc/if/group.yml
new file mode 100644
index 00000000..c7ae3fe8
--- /dev/null
+++ b/spec/doc/if/group.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+identifier: Compiler
+links:
+- role: requirement-refinement
+  uid: /req/external-interface
+non-functional-type: design-group
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The used documentation interfaces shall be specified.
+type: requirement
diff --git a/spec/doc/if/mp-proxies.yml b/spec/doc/if/mp-proxies.yml
index 8c74cc8d..44aa1857 100644
--- a/spec/doc/if/mp-proxies.yml
+++ b/spec/doc/if/mp-proxies.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Proxies
 references:
 - identifier: MPCIProxies
diff --git a/spec/doc/if/mrsp.yml b/spec/doc/if/mrsp.yml
index 16168704..938235b5 100644
--- a/spec/doc/if/mrsp.yml
+++ b/spec/doc/if/mrsp.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Multiprocessor Resource Sharing Protocol (MrsP)
 references:
 - identifier: MrsP
diff --git a/spec/doc/if/scheduler-cbs.yml b/spec/doc/if/scheduler-cbs.yml
index bdf910e9..e3919944 100644
--- a/spec/doc/if/scheduler-cbs.yml
+++ b/spec/doc/if/scheduler-cbs.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Constant Bandwidth Server Scheduling (CBS)
 references:
 - identifier: SchedulerCBS
diff --git a/spec/doc/if/scheduler-concepts.yml b/spec/doc/if/scheduler-concepts.yml
index b2e50168..713a27c3 100644
--- a/spec/doc/if/scheduler-concepts.yml
+++ b/spec/doc/if/scheduler-concepts.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Scheduling Concepts
 references:
 - identifier: RTEMSAPIClassicScheduler
diff --git a/spec/doc/if/scheduler-edf.yml b/spec/doc/if/scheduler-edf.yml
index 01d6e5f3..21480e46 100644
--- a/spec/doc/if/scheduler-edf.yml
+++ b/spec/doc/if/scheduler-edf.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Earliest Deadline First Scheduler
 references:
 - identifier: SchedulerEDF
diff --git a/spec/doc/if/scheduler-priority-simple.yml b/spec/doc/if/scheduler-priority-simple.yml
index 2e46d58d..aa1f7718 100644
--- a/spec/doc/if/scheduler-priority-simple.yml
+++ b/spec/doc/if/scheduler-priority-simple.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Simple Priority Scheduler
 references:
 - identifier: SchedulerPrioritySimple
diff --git a/spec/doc/if/scheduler-priority.yml b/spec/doc/if/scheduler-priority.yml
index 82a44168..9ded6a11 100644
--- a/spec/doc/if/scheduler-priority.yml
+++ b/spec/doc/if/scheduler-priority.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Deterministic Priority Scheduler
 references:
 - identifier: SchedulerPriority
diff --git a/spec/doc/if/scheduler-smp-edf.yml b/spec/doc/if/scheduler-smp-edf.yml
index 86ddee27..ef431f9d 100644
--- a/spec/doc/if/scheduler-smp-edf.yml
+++ b/spec/doc/if/scheduler-smp-edf.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Earliest Deadline First SMP Scheduler
 references:
 - identifier: SchedulerSMPEDF
diff --git a/spec/doc/if/scheduler-smp-priority-affinity.yml b/spec/doc/if/scheduler-smp-priority-affinity.yml
index eeb44bc2..b65e0271 100644
--- a/spec/doc/if/scheduler-smp-priority-affinity.yml
+++ b/spec/doc/if/scheduler-smp-priority-affinity.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Arbitrary Processor Affinity Priority SMP Scheduler
 references:
 - identifier: SchedulerSMPPriorityAffinity
diff --git a/spec/doc/if/scheduler-smp-priority-simple.yml b/spec/doc/if/scheduler-smp-priority-simple.yml
index ac236592..af6648ee 100644
--- a/spec/doc/if/scheduler-smp-priority-simple.yml
+++ b/spec/doc/if/scheduler-smp-priority-simple.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Simple Priority SMP Scheduler
 references:
 - identifier: SchedulerSMPPrioritySimple
diff --git a/spec/doc/if/scheduler-smp-priority.yml b/spec/doc/if/scheduler-smp-priority.yml
index 9fd29adc..2beb15f4 100644
--- a/spec/doc/if/scheduler-smp-priority.yml
+++ b/spec/doc/if/scheduler-smp-priority.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Deterministic Priority SMP Scheduler
 references:
 - identifier: SchedulerSMPPriority
diff --git a/spec/doc/if/terminate.yml b/spec/doc/if/terminate.yml
index d0dbca67..63736f4f 100644
--- a/spec/doc/if/terminate.yml
+++ b/spec/doc/if/terminate.yml
@@ -7,6 +7,8 @@ interface-type: unspecified-group
 links:
 - role: interface-placement
   uid: domain
+- role: interface-ingroup
+  uid: group
 name: Announcing a Fatal Error
 references:
 - identifier: Terminate
diff --git a/spec/req/external-interface.yml b/spec/req/external-interface.yml
new file mode 100644
index 00000000..fd478cdc
--- /dev/null
+++ b/spec/req/external-interface.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: root
+non-functional-type: interface-requirement
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The software product shall specify used external interfaces.
+type: requirement
diff --git a/spec/spec/interface-container.yml b/spec/spec/interface-container.yml
deleted file mode 100644
index be98c68e..00000000
--- a/spec/spec/interface-container.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: spec-member
-  uid: root
-- role: spec-refinement
-  spec-key: interface-type
-  spec-value: container
-  uid: interface
-spec-description: null
-spec-example: null
-spec-info:
-  dict:
-    attributes: {}
-    description: |
-      Items of this type specify an interface container.  The item shall have
-      exactly one link with the ${interface-placement:/spec-name} to an
-      ${interface-domain:/spec-name} item.  This link defines the interface
-      domain of the container.
-    mandatory-attributes: all
-spec-name: Interface Container Item Type
-spec-type: interface-container
-type: spec
diff --git a/spec/spec/interface-domain.yml b/spec/spec/interface-domain.yml
index 143e0b8c..4653c80d 100644
--- a/spec/spec/interface-domain.yml
+++ b/spec/spec/interface-domain.yml
@@ -24,9 +24,8 @@ spec-info:
         spec-type: str
     description: |
       This set of attributes specifies an interface domain.  Items of the types
-      ${interface-container:/spec-name} and ${interface-header-file:/spec-name}
-      are placed into domains through links with the
-      ${interface-placement:/spec-name}.
+      ${interface-header-file:/spec-name} are placed into domains through links
+      with the ${interface-placement:/spec-name}.
     mandatory-attributes: all
 spec-name: Interface Domain Item Type
 spec-type: interface-domain
diff --git a/spec/user/if/asm.yml b/spec/user/if/asm.yml
index d3c60327..367c87c8 100644
--- a/spec/user/if/asm.yml
+++ b/spec/user/if/asm.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: ASM
 references: []
 type: interface
diff --git a/spec/user/if/container.yml b/spec/user/if/container.yml
deleted file mode 100644
index 6a02d235..00000000
--- a/spec/user/if/container.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-index-entries: []
-interface-type: container
-links:
-- role: interface-placement
-  uid: domain
-type: interface
diff --git a/spec/user/if/false.yml b/spec/user/if/false.yml
index 0b9c2ee2..77dda8f0 100644
--- a/spec/user/if/false.yml
+++ b/spec/user/if/false.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: 'FALSE'
 references: []
 type: interface
diff --git a/spec/user/if/group.yml b/spec/user/if/group.yml
new file mode 100644
index 00000000..3ca40f72
--- /dev/null
+++ b/spec/user/if/group.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+identifier: Compiler
+links:
+- role: requirement-refinement
+  uid: /req/external-interface
+non-functional-type: design-group
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The used user-provided interfaces shall be specified.
+type: requirement
diff --git a/spec/user/if/true.yml b/spec/user/if/true.yml
index 7ed93623..a37059be 100644
--- a/spec/user/if/true.yml
+++ b/spec/user/if/true.yml
@@ -3,10 +3,10 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 index-entries: []
-interface-type: unspecified
+interface-type: unspecified-define
 links:
-- role: interface-placement
-  uid: container
+- role: interface-ingroup
+  uid: group
 name: 'TRUE'
 references: []
 type: interface



More information about the vc mailing list