[rtems-central commit] spec: Use proper type for interface functions

Sebastian Huber sebh at rtems.org
Thu Sep 8 13:18:14 UTC 2022


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Sep  7 13:53:19 2022 +0200

spec: Use proper type for interface functions

---

 spec/rtems/attr/req/default-equals.yml                      | 4 ++--
 spec/rtems/attr/req/semaphore-class.yml                     | 4 ++--
 spec/rtems/basedefs/req/alias-0.yml                         | 4 ++--
 spec/rtems/basedefs/req/align-down-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/align-up-0.yml                      | 4 ++--
 spec/rtems/basedefs/req/aligned-0.yml                       | 4 ++--
 spec/rtems/basedefs/req/alignof-0.yml                       | 4 ++--
 spec/rtems/basedefs/req/alignof-1.yml                       | 4 ++--
 spec/rtems/basedefs/req/alignof-2.yml                       | 4 ++--
 spec/rtems/basedefs/req/alignof-3.yml                       | 4 ++--
 spec/rtems/basedefs/req/alloc-align-0.yml                   | 4 ++--
 spec/rtems/basedefs/req/alloc-size-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/alloc-size-2-0.yml                  | 4 ++--
 spec/rtems/basedefs/req/array-size-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/compiler-deprecated-attribute-0.yml | 4 ++--
 spec/rtems/basedefs/req/compiler-memory-barrier-0.yml       | 4 ++--
 spec/rtems/basedefs/req/compiler-no-return-attribute-0.yml  | 4 ++--
 spec/rtems/basedefs/req/compiler-packed-attribute-0.yml     | 4 ++--
 spec/rtems/basedefs/req/compiler-pure-attribute-0.yml       | 4 ++--
 spec/rtems/basedefs/req/compiler-unused-attribute-0.yml     | 4 ++--
 spec/rtems/basedefs/req/concat-0.yml                        | 4 ++--
 spec/rtems/basedefs/req/concat-1.yml                        | 4 ++--
 spec/rtems/basedefs/req/concat-2.yml                        | 4 ++--
 spec/rtems/basedefs/req/const-0.yml                         | 4 ++--
 spec/rtems/basedefs/req/container-of-0.yml                  | 4 ++--
 spec/rtems/basedefs/req/declare-global-symbol-0.yml         | 4 ++--
 spec/rtems/basedefs/req/deconst-0.yml                       | 4 ++--
 spec/rtems/basedefs/req/define-global-symbol-0.yml          | 4 ++--
 spec/rtems/basedefs/req/define-global-symbol-1.yml          | 4 ++--
 spec/rtems/basedefs/req/deprecated-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/dequalify-0.yml                     | 4 ++--
 spec/rtems/basedefs/req/dequalify-depthx-0.yml              | 4 ++--
 spec/rtems/basedefs/req/devolatile-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/expand-0.yml                        | 4 ++--
 spec/rtems/basedefs/req/false-0.yml                         | 4 ++--
 spec/rtems/basedefs/req/have-member-same-type-0.yml         | 4 ++--
 spec/rtems/basedefs/req/inline-routine-0.yml                | 4 ++--
 spec/rtems/basedefs/req/malloclike-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/no-inline-0.yml                     | 4 ++--
 spec/rtems/basedefs/req/no-return-0.yml                     | 4 ++--
 spec/rtems/basedefs/req/noinit-0.yml                        | 4 ++--
 spec/rtems/basedefs/req/obfuscate-variable-0.yml            | 4 ++--
 spec/rtems/basedefs/req/packed-0.yml                        | 4 ++--
 spec/rtems/basedefs/req/packed-1.yml                        | 4 ++--
 spec/rtems/basedefs/req/packed-2.yml                        | 4 ++--
 spec/rtems/basedefs/req/predict-false-0.yml                 | 4 ++--
 spec/rtems/basedefs/req/predict-true-0.yml                  | 4 ++--
 spec/rtems/basedefs/req/printflike-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/printflike-1.yml                    | 4 ++--
 spec/rtems/basedefs/req/pure-0.yml                          | 4 ++--
 spec/rtems/basedefs/req/return-address-0.yml                | 4 ++--
 spec/rtems/basedefs/req/section-0.yml                       | 4 ++--
 spec/rtems/basedefs/req/static-analysis-0.yml               | 4 ++--
 spec/rtems/basedefs/req/static-analysis-1.yml               | 4 ++--
 spec/rtems/basedefs/req/static-assert-0.yml                 | 4 ++--
 spec/rtems/basedefs/req/string-0.yml                        | 4 ++--
 spec/rtems/basedefs/req/true-0.yml                          | 4 ++--
 spec/rtems/basedefs/req/typeof-refx-0.yml                   | 4 ++--
 spec/rtems/basedefs/req/unreachable-0.yml                   | 4 ++--
 spec/rtems/basedefs/req/unused-0.yml                        | 4 ++--
 spec/rtems/basedefs/req/unused-1.yml                        | 4 ++--
 spec/rtems/basedefs/req/unused-2.yml                        | 4 ++--
 spec/rtems/basedefs/req/unused-3.yml                        | 4 ++--
 spec/rtems/basedefs/req/used-0.yml                          | 4 ++--
 spec/rtems/basedefs/req/warn-unused-result-0.yml            | 4 ++--
 spec/rtems/basedefs/req/weak-0.yml                          | 4 ++--
 spec/rtems/basedefs/req/weak-1.yml                          | 4 ++--
 spec/rtems/basedefs/req/weak-alias-0.yml                    | 4 ++--
 spec/rtems/basedefs/req/weak-alias-1.yml                    | 4 ++--
 spec/rtems/basedefs/req/xconcat-0.yml                       | 4 ++--
 spec/rtems/basedefs/req/xconcat-1.yml                       | 4 ++--
 spec/rtems/basedefs/req/xconcat-2.yml                       | 4 ++--
 spec/rtems/basedefs/req/xconcat-3.yml                       | 4 ++--
 spec/rtems/basedefs/req/xstring-0.yml                       | 4 ++--
 spec/rtems/basedefs/req/zero-length-array-0.yml             | 4 ++--
 spec/rtems/clock/req/get-ticks-per-second.yml               | 4 ++--
 spec/rtems/clock/req/get-ticks-since-boot.yml               | 4 ++--
 spec/rtems/message/req/buffer.yml                           | 4 ++--
 spec/rtems/mode/req/masks-all.yml                           | 4 ++--
 spec/rtems/option/req/default-equals.yml                    | 4 ++--
 80 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/spec/rtems/attr/req/default-equals.yml b/spec/rtems/attr/req/default-equals.yml
index 00a2cfa6..4d011127 100644
--- a/spec/rtems/attr/req/default-equals.yml
+++ b/spec/rtems/attr/req/default-equals.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/default
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The value of macro ${../if/default:/name} shall be equal to the value
   of expression ``${../if/fifo:/name} | ${../if/local:/name}``.
diff --git a/spec/rtems/attr/req/semaphore-class.yml b/spec/rtems/attr/req/semaphore-class.yml
index 12a6e91a..dcb154e7 100644
--- a/spec/rtems/attr/req/semaphore-class.yml
+++ b/spec/rtems/attr/req/semaphore-class.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/semaphore-class
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The ${../if/semaphore-class:/name} constant shall be equal to the bitwise or
   of ${../if/binary-semaphore:/name}, ${../if/counting-semaphore:/name}, and
diff --git a/spec/rtems/basedefs/req/alias-0.yml b/spec/rtems/basedefs/req/alias-0.yml
index fdfead11..3b9da6a6 100644
--- a/spec/rtems/basedefs/req/alias-0.yml
+++ b/spec/rtems/basedefs/req/alias-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alias
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When argument ${../if/alias:/params[0]/name} is a name of a function,
   and the macro ${../if/alias:/name} call is in the same compilation unit
diff --git a/spec/rtems/basedefs/req/align-down-0.yml b/spec/rtems/basedefs/req/align-down-0.yml
index e588ce68..254e30ba 100644
--- a/spec/rtems/basedefs/req/align-down-0.yml
+++ b/spec/rtems/basedefs/req/align-down-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/align-down
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument ${../if/align-down:/params[1]/name} is a
   positive power of two integer,
diff --git a/spec/rtems/basedefs/req/align-up-0.yml b/spec/rtems/basedefs/req/align-up-0.yml
index 897cd5f3..3b661de9 100644
--- a/spec/rtems/basedefs/req/align-up-0.yml
+++ b/spec/rtems/basedefs/req/align-up-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/align-up
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument ${../if/align-up:/params[1]/name} is a
   positive power of two integer,
diff --git a/spec/rtems/basedefs/req/aligned-0.yml b/spec/rtems/basedefs/req/aligned-0.yml
index e9d6f41d..f13c1bd5 100644
--- a/spec/rtems/basedefs/req/aligned-0.yml
+++ b/spec/rtems/basedefs/req/aligned-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/aligned
-non-functional-type: interface
 rationale: |
   Note that the ${../if/aligned:/name} macro can often only increases the
   alignment but under some circumstances, it can also decrease the alignment.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument ${../if/aligned:/params[0]/name} is a
   positive power of two integer,
diff --git a/spec/rtems/basedefs/req/alignof-0.yml b/spec/rtems/basedefs/req/alignof-0.yml
index 01e47b53..3c49d9cc 100644
--- a/spec/rtems/basedefs/req/alignof-0.yml
+++ b/spec/rtems/basedefs/req/alignof-0.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alignof
-non-functional-type: interface
 rationale: |
   Note that if not ``__STDC_VERSION__ >= 201112L`` and neither
   ``__cplusplus >= 201103L``, the result of this call may return a value
   which is not appropriate for alignment.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with a C compiler and
   the ``__STDC_VERSION__`` symbol is defined with version ``201112L`` or
diff --git a/spec/rtems/basedefs/req/alignof-1.yml b/spec/rtems/basedefs/req/alignof-1.yml
index 786d0998..4ee2d792 100644
--- a/spec/rtems/basedefs/req/alignof-1.yml
+++ b/spec/rtems/basedefs/req/alignof-1.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alignof
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with a C compiler and
   the ``__STDC_VERSION__`` symbol is defined with version ``201112L`` or
diff --git a/spec/rtems/basedefs/req/alignof-2.yml b/spec/rtems/basedefs/req/alignof-2.yml
index ba703273..8eb59678 100644
--- a/spec/rtems/basedefs/req/alignof-2.yml
+++ b/spec/rtems/basedefs/req/alignof-2.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alignof
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with a C compiler and
   the ``__STDC_VERSION__`` symbol is defined with version ``201112L`` or
diff --git a/spec/rtems/basedefs/req/alignof-3.yml b/spec/rtems/basedefs/req/alignof-3.yml
index 12b17e93..e4600351 100644
--- a/spec/rtems/basedefs/req/alignof-3.yml
+++ b/spec/rtems/basedefs/req/alignof-3.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alignof
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/alignof:/name} shall result in
   an constant integer of type size_t.
diff --git a/spec/rtems/basedefs/req/alloc-align-0.yml b/spec/rtems/basedefs/req/alloc-align-0.yml
index df83fe43..4de29395 100644
--- a/spec/rtems/basedefs/req/alloc-align-0.yml
+++ b/spec/rtems/basedefs/req/alloc-align-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alloc-align
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/alloc-align:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/alloc-size-0.yml b/spec/rtems/basedefs/req/alloc-size-0.yml
index 0bdc0688..5a67eb56 100644
--- a/spec/rtems/basedefs/req/alloc-size-0.yml
+++ b/spec/rtems/basedefs/req/alloc-size-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alloc-size
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/alloc-size:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/alloc-size-2-0.yml b/spec/rtems/basedefs/req/alloc-size-2-0.yml
index 1d120589..1ea49d90 100644
--- a/spec/rtems/basedefs/req/alloc-size-2-0.yml
+++ b/spec/rtems/basedefs/req/alloc-size-2-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/alloc-size-2
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/alloc-size-2:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/array-size-0.yml b/spec/rtems/basedefs/req/array-size-0.yml
index d0dbe5eb..620e1ddf 100644
--- a/spec/rtems/basedefs/req/array-size-0.yml
+++ b/spec/rtems/basedefs/req/array-size-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/array-size
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument ${../if/alloc-size:/params[0]/name} evaluates to an
   value of a C one-dimensional array type,
diff --git a/spec/rtems/basedefs/req/compiler-deprecated-attribute-0.yml b/spec/rtems/basedefs/req/compiler-deprecated-attribute-0.yml
index 0078adf3..672b9055 100644
--- a/spec/rtems/basedefs/req/compiler-deprecated-attribute-0.yml
+++ b/spec/rtems/basedefs/req/compiler-deprecated-attribute-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/compiler-deprecated-attribute
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/compiler-deprecated-attribute:/name} shall
   have exactly the same effect as the macro ${../if/deprecated:/name}.
diff --git a/spec/rtems/basedefs/req/compiler-memory-barrier-0.yml b/spec/rtems/basedefs/req/compiler-memory-barrier-0.yml
index ba599745..c540bd05 100644
--- a/spec/rtems/basedefs/req/compiler-memory-barrier-0.yml
+++ b/spec/rtems/basedefs/req/compiler-memory-barrier-0.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/compiler-memory-barrier
-non-functional-type: interface
 rationale: |
   A Full Software Memory Barrier prevents the compiler to move loads and
   stores (in any direction) beyond the point where the barrier is in the
@@ -13,7 +13,7 @@ rationale: |
   This is a compile time only barrier. The CPU optimizations can still
   move instructions over the barrier at run-time.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   the ${../if/compiler-memory-barrier:/name} macro shall
diff --git a/spec/rtems/basedefs/req/compiler-no-return-attribute-0.yml b/spec/rtems/basedefs/req/compiler-no-return-attribute-0.yml
index 17edb7fc..0a6223ed 100644
--- a/spec/rtems/basedefs/req/compiler-no-return-attribute-0.yml
+++ b/spec/rtems/basedefs/req/compiler-no-return-attribute-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/compiler-no-return-attribute
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/compiler-no-return-attribute:/name} shall
   have exactly the same effect as the macro ${../if/no-return:/name}.
diff --git a/spec/rtems/basedefs/req/compiler-packed-attribute-0.yml b/spec/rtems/basedefs/req/compiler-packed-attribute-0.yml
index 03f78132..53a1e5e6 100644
--- a/spec/rtems/basedefs/req/compiler-packed-attribute-0.yml
+++ b/spec/rtems/basedefs/req/compiler-packed-attribute-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/compiler-packed-attribute
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/compiler-packed-attribute:/name} shall
   have exactly the same effect as the macro ${../if/packed:/name}.
diff --git a/spec/rtems/basedefs/req/compiler-pure-attribute-0.yml b/spec/rtems/basedefs/req/compiler-pure-attribute-0.yml
index b29ef14c..480ede14 100644
--- a/spec/rtems/basedefs/req/compiler-pure-attribute-0.yml
+++ b/spec/rtems/basedefs/req/compiler-pure-attribute-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/compiler-pure-attribute
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/compiler-pure-attribute:/name} shall
   have exactly the same effect as the macro ${../if/pure:/name}.
diff --git a/spec/rtems/basedefs/req/compiler-unused-attribute-0.yml b/spec/rtems/basedefs/req/compiler-unused-attribute-0.yml
index 91b93bf3..e1988a16 100644
--- a/spec/rtems/basedefs/req/compiler-unused-attribute-0.yml
+++ b/spec/rtems/basedefs/req/compiler-unused-attribute-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/compiler-unused-attribute
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/compiler-unused-attribute:/name} shall
   have exactly the same effect as the macro ${../if/unused:/name}.
diff --git a/spec/rtems/basedefs/req/concat-0.yml b/spec/rtems/basedefs/req/concat-0.yml
index ec030144..a5a05d54 100644
--- a/spec/rtems/basedefs/req/concat-0.yml
+++ b/spec/rtems/basedefs/req/concat-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/concat
-non-functional-type: interface
 rationale: |
   The rules for nested use of the ## operator are arcane. The result of such
   nested macro calls is undefined.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When neither argument is a call of the macro ${../if/concat:/name} itself,
   the macro shall result in both argument values
diff --git a/spec/rtems/basedefs/req/concat-1.yml b/spec/rtems/basedefs/req/concat-1.yml
index 3cac3c9d..400f3e97 100644
--- a/spec/rtems/basedefs/req/concat-1.yml
+++ b/spec/rtems/basedefs/req/concat-1.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/concat
-non-functional-type: interface
 rationale: |
   There should be no additional character before, between or after the
   arguments in the result.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/concat:/name} shall result in only those
   characters which also appear in its argument values.
diff --git a/spec/rtems/basedefs/req/concat-2.yml b/spec/rtems/basedefs/req/concat-2.yml
index aa2c03fd..17b7f164 100644
--- a/spec/rtems/basedefs/req/concat-2.yml
+++ b/spec/rtems/basedefs/req/concat-2.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/concat
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/concat:/name} shall make its result
   subject to C pre-processor operations.
diff --git a/spec/rtems/basedefs/req/const-0.yml b/spec/rtems/basedefs/req/const-0.yml
index 9cb637ac..427c7691 100644
--- a/spec/rtems/basedefs/req/const-0.yml
+++ b/spec/rtems/basedefs/req/const-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/const
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/const:/name} macro is attached to a
diff --git a/spec/rtems/basedefs/req/container-of-0.yml b/spec/rtems/basedefs/req/container-of-0.yml
index ed46bb69..e0939c39 100644
--- a/spec/rtems/basedefs/req/container-of-0.yml
+++ b/spec/rtems/basedefs/req/container-of-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/container-of
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When argument ${../if/container-of:/params[0]/name} points to a
   member field of a structure or union or C++ class,
diff --git a/spec/rtems/basedefs/req/declare-global-symbol-0.yml b/spec/rtems/basedefs/req/declare-global-symbol-0.yml
index d936b206..079a89c6 100644
--- a/spec/rtems/basedefs/req/declare-global-symbol-0.yml
+++ b/spec/rtems/basedefs/req/declare-global-symbol-0.yml
@@ -2,14 +2,14 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/declare-global-symbol
-non-functional-type: interface
 rationale: |
   See also ${../if/define-global-symbol:/name}.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the macro ${../if/declare-global-symbol:/name} appears at file scope,
   and argument ${../if/declare-global-symbol:/params[0]/name} after undergoing
diff --git a/spec/rtems/basedefs/req/deconst-0.yml b/spec/rtems/basedefs/req/deconst-0.yml
index 44ba13ec..2f574243 100644
--- a/spec/rtems/basedefs/req/deconst-0.yml
+++ b/spec/rtems/basedefs/req/deconst-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/deconst
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When ${../if/deconst:/params[0]/name} is a non-const pointer type,
   and ${../if/deconst:/params[1]/name} is a pointer to a value of const type,
diff --git a/spec/rtems/basedefs/req/define-global-symbol-0.yml b/spec/rtems/basedefs/req/define-global-symbol-0.yml
index 325deff3..493d80e9 100644
--- a/spec/rtems/basedefs/req/define-global-symbol-0.yml
+++ b/spec/rtems/basedefs/req/define-global-symbol-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/define-global-symbol
-non-functional-type: interface
 rationale: |
   See also ${../if/declare-global-symbol:/name}.
   *File scope* excludes for example a placement in a function body.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the macro ${../if/define-global-symbol:/name} appears at file scope,
   and argument ${../if/define-global-symbol:/params[0]/name} after undergoing
diff --git a/spec/rtems/basedefs/req/define-global-symbol-1.yml b/spec/rtems/basedefs/req/define-global-symbol-1.yml
index 4ee561f5..eb00f03e 100644
--- a/spec/rtems/basedefs/req/define-global-symbol-1.yml
+++ b/spec/rtems/basedefs/req/define-global-symbol-1.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/define-global-symbol
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/define-global-symbol:/name} shall define
   a global symbol of ``void`` pointer type with the value being an address.
diff --git a/spec/rtems/basedefs/req/deprecated-0.yml b/spec/rtems/basedefs/req/deprecated-0.yml
index d7430d43..2f327a6b 100644
--- a/spec/rtems/basedefs/req/deprecated-0.yml
+++ b/spec/rtems/basedefs/req/deprecated-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/deprecated
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/deprecated:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/dequalify-0.yml b/spec/rtems/basedefs/req/dequalify-0.yml
index 7245dac3..f8b51e3f 100644
--- a/spec/rtems/basedefs/req/dequalify-0.yml
+++ b/spec/rtems/basedefs/req/dequalify-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/dequalify
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When ${../if/dequalify:/params[0]/name} is a non-const non-volatile
   pointer type,
diff --git a/spec/rtems/basedefs/req/dequalify-depthx-0.yml b/spec/rtems/basedefs/req/dequalify-depthx-0.yml
index 99010fb0..f8b78654 100644
--- a/spec/rtems/basedefs/req/dequalify-depthx-0.yml
+++ b/spec/rtems/basedefs/req/dequalify-depthx-0.yml
@@ -2,14 +2,14 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/dequalify-depthx
-non-functional-type: interface
 rationale: |
   ${../if/dequalify-depthx:/name} checks for incompatible pointer types.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument value of ${../if/dequalify-depthx:/params[0]/name} consists
   of a sequence of *i* ``*`` and the types of both other arguments both
diff --git a/spec/rtems/basedefs/req/devolatile-0.yml b/spec/rtems/basedefs/req/devolatile-0.yml
index ed471fba..ec17a96d 100644
--- a/spec/rtems/basedefs/req/devolatile-0.yml
+++ b/spec/rtems/basedefs/req/devolatile-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/devolatile
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When ${../if/devolatile:/params[0]/name} is a non-volatile pointer type,
   and ${../if/devolatile:/params[1]/name} is a pointer to a value of
diff --git a/spec/rtems/basedefs/req/expand-0.yml b/spec/rtems/basedefs/req/expand-0.yml
index 07ad1865..683d0504 100644
--- a/spec/rtems/basedefs/req/expand-0.yml
+++ b/spec/rtems/basedefs/req/expand-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/expand
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/expand:/name} shall apply all possible C
   pre-processor substitutions to its argument value
diff --git a/spec/rtems/basedefs/req/false-0.yml b/spec/rtems/basedefs/req/false-0.yml
index 1b0c8eb8..af923e1e 100644
--- a/spec/rtems/basedefs/req/false-0.yml
+++ b/spec/rtems/basedefs/req/false-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/false
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/false:/name} shall result in the text 0.
 type: requirement
diff --git a/spec/rtems/basedefs/req/have-member-same-type-0.yml b/spec/rtems/basedefs/req/have-member-same-type-0.yml
index f138988e..e8b419b6 100644
--- a/spec/rtems/basedefs/req/have-member-same-type-0.yml
+++ b/spec/rtems/basedefs/req/have-member-same-type-0.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/have-member-same-type
-non-functional-type: interface
 rationale: |
   The ${../if/have-member-same-type:/name} does only work in C.
   Type qualifiers do not matter (``const int`` is
@@ -15,7 +15,7 @@ rationale: |
   indirection matters (``**int`` is not compatible with ``*int``).
   See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005ftypes_005fcompatible_005fp
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and argument ${../if/have-member-same-type:/params[0]/name} is a union or
diff --git a/spec/rtems/basedefs/req/inline-routine-0.yml b/spec/rtems/basedefs/req/inline-routine-0.yml
index 844d5917..db388d93 100644
--- a/spec/rtems/basedefs/req/inline-routine-0.yml
+++ b/spec/rtems/basedefs/req/inline-routine-0.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/inline-routine
-non-functional-type: interface
 rationale: |
   ``inline`` and ``__inline__`` have the same effect at least for the
   GNU C compiler. ``__inline__`` works even if the GNU C compiler
@@ -17,7 +17,7 @@ rationale: |
   file, consider ``extern inline`` instead (see the compiler
   documentation).
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The ${../if/inline-routine:/name} macro shall evaluate
   to the keywords ``static inline`` or ``static __inline__``
diff --git a/spec/rtems/basedefs/req/malloclike-0.yml b/spec/rtems/basedefs/req/malloclike-0.yml
index 6d70bc5f..f5a9aab3 100644
--- a/spec/rtems/basedefs/req/malloclike-0.yml
+++ b/spec/rtems/basedefs/req/malloclike-0.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/malloclike
-non-functional-type: interface
 rationale: |
   Functions like malloc() and calloc() have this property but functions
   like realloc() do not have this property because the memory it returns
   may pointer to valid objects.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/malloclike:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/no-inline-0.yml b/spec/rtems/basedefs/req/no-inline-0.yml
index f720c117..6e36bfea 100644
--- a/spec/rtems/basedefs/req/no-inline-0.yml
+++ b/spec/rtems/basedefs/req/no-inline-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/no-inline
-non-functional-type: interface
 rationale: |
   If the function has no side effects, it may still be subject to inlining.
   To avoid this, produce an artificial side effect with ``asm ("");``.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/no-inline:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/no-return-0.yml b/spec/rtems/basedefs/req/no-return-0.yml
index 48b19570..0b49cb5f 100644
--- a/spec/rtems/basedefs/req/no-return-0.yml
+++ b/spec/rtems/basedefs/req/no-return-0.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/no-return
-non-functional-type: interface
 rationale: |
   The GNU C compiler can optimize such a function without regard to what would
   happen if it ever did return. Declaring a function ${../if/no-return:/name}
   also avoids spurious warnings of uninitialized variables.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler starting at version 2.5
   or the ``__cplusplus`` symbol is defined with version ``201103L`` or higher
diff --git a/spec/rtems/basedefs/req/noinit-0.yml b/spec/rtems/basedefs/req/noinit-0.yml
index b60d0c3a..853e6d7a 100644
--- a/spec/rtems/basedefs/req/noinit-0.yml
+++ b/spec/rtems/basedefs/req/noinit-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/noinit
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/section:/name} macro is attached to a
diff --git a/spec/rtems/basedefs/req/obfuscate-variable-0.yml b/spec/rtems/basedefs/req/obfuscate-variable-0.yml
index 19cde26d..653c0ab9 100644
--- a/spec/rtems/basedefs/req/obfuscate-variable-0.yml
+++ b/spec/rtems/basedefs/req/obfuscate-variable-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/obfuscate-variable
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and argument ${../if/obfuscate-variable:/params[0]/name}
diff --git a/spec/rtems/basedefs/req/packed-0.yml b/spec/rtems/basedefs/req/packed-0.yml
index 3bccd29a..3c0fa72d 100644
--- a/spec/rtems/basedefs/req/packed-0.yml
+++ b/spec/rtems/basedefs/req/packed-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/packed
-non-functional-type: interface
 rationale: |
   Note: The 4.1, 4.2 and 4.3 series of GCC ignore the packed attribute
   on bit-fields of type char.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/packed:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/packed-1.yml b/spec/rtems/basedefs/req/packed-1.yml
index d3899261..f3bd9794 100644
--- a/spec/rtems/basedefs/req/packed-1.yml
+++ b/spec/rtems/basedefs/req/packed-1.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/packed
-non-functional-type: interface
 rationale: |
   The effect of the ${../if/packed:/name} macro is not propagated into any
   structure, union or C++ class which is member of the structure, union or
   C++ class declaration to which the macro is attached.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/packed:/name} macro is attached to a
diff --git a/spec/rtems/basedefs/req/packed-2.yml b/spec/rtems/basedefs/req/packed-2.yml
index 24bcf5d9..89e60784 100644
--- a/spec/rtems/basedefs/req/packed-2.yml
+++ b/spec/rtems/basedefs/req/packed-2.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/packed
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/packed:/name} macro is attached to a
diff --git a/spec/rtems/basedefs/req/predict-false-0.yml b/spec/rtems/basedefs/req/predict-false-0.yml
index aa88bc51..59de8c3f 100644
--- a/spec/rtems/basedefs/req/predict-false-0.yml
+++ b/spec/rtems/basedefs/req/predict-false-0.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/predict-false
-non-functional-type: interface
 rationale: |
   Example: ``if ( ${../if/predict-false:/name}( -1 == i ) ) { ... }``.
   The GNU C compiler uses this information for branch optimization.
   ``builtin-expect-probability`` defaults to 90%.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/predict-false:/name} macro is used as a conditional
diff --git a/spec/rtems/basedefs/req/predict-true-0.yml b/spec/rtems/basedefs/req/predict-true-0.yml
index 6f1aaf95..ec3fdf65 100644
--- a/spec/rtems/basedefs/req/predict-true-0.yml
+++ b/spec/rtems/basedefs/req/predict-true-0.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/predict-true
-non-functional-type: interface
 rationale: |
   Example: ``if ( ${../if/predict-true:/name}( 99 > i ) ) { ... }``.
   The GNU C compiler uses this information for branch optimization.
@@ -14,7 +14,7 @@ rationale: |
   "the result is 1" not "the result is not 0" as one would expect for
   ``true``.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/predict-true:/name} macro is used as a conditional
diff --git a/spec/rtems/basedefs/req/printflike-0.yml b/spec/rtems/basedefs/req/printflike-0.yml
index de11b9f1..ff5f69da 100644
--- a/spec/rtems/basedefs/req/printflike-0.yml
+++ b/spec/rtems/basedefs/req/printflike-0.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/printflike
-non-functional-type: interface
 rationale: |
   Counting of arguments starts at 1 from the left with the
   exception of non-static C++ methods where the counting starts with
   2 due to the implicit ``this`` argument.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/printflike:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/printflike-1.yml b/spec/rtems/basedefs/req/printflike-1.yml
index c79aad40..c1e23397 100644
--- a/spec/rtems/basedefs/req/printflike-1.yml
+++ b/spec/rtems/basedefs/req/printflike-1.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/printflike
-non-functional-type: interface
 rationale: |
   This case is for functions where the arguments are not available
   to be checked (such as ``vprintf``). The compiler will only check
@@ -15,7 +15,7 @@ rationale: |
   exception of non-static C++ methods where the counting starts with
   2 due to the implicit ``this`` argument.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/printflike:/name} macro is used as last part of a
diff --git a/spec/rtems/basedefs/req/pure-0.yml b/spec/rtems/basedefs/req/pure-0.yml
index a878fdcb..414ff58b 100644
--- a/spec/rtems/basedefs/req/pure-0.yml
+++ b/spec/rtems/basedefs/req/pure-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/pure
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/pure:/name} macro is attached to a
diff --git a/spec/rtems/basedefs/req/return-address-0.yml b/spec/rtems/basedefs/req/return-address-0.yml
index 863f1d40..c2c97f71 100644
--- a/spec/rtems/basedefs/req/return-address-0.yml
+++ b/spec/rtems/basedefs/req/return-address-0.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/return-address
-non-functional-type: interface
 rationale: |
   From the GNU C compiler documentation:
 
@@ -21,7 +21,7 @@ rationale: |
   Under these circumstances it is at least difficult to specify
   what the actual result of this macro is.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   the ${../if/return-address:/name} macro shall evaluate to the
diff --git a/spec/rtems/basedefs/req/section-0.yml b/spec/rtems/basedefs/req/section-0.yml
index 133069b7..c05a2593 100644
--- a/spec/rtems/basedefs/req/section-0.yml
+++ b/spec/rtems/basedefs/req/section-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/section
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/section:/name} macro is attached to a
diff --git a/spec/rtems/basedefs/req/static-analysis-0.yml b/spec/rtems/basedefs/req/static-analysis-0.yml
index 346cf33e..d87021b8 100644
--- a/spec/rtems/basedefs/req/static-analysis-0.yml
+++ b/spec/rtems/basedefs/req/static-analysis-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/static-analysis
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the macro ``__COVERITY__`` is defined,
   the macro ${../if/static-analysis:/name} shall be defined.
diff --git a/spec/rtems/basedefs/req/static-analysis-1.yml b/spec/rtems/basedefs/req/static-analysis-1.yml
index ee33b872..bd7cec3d 100644
--- a/spec/rtems/basedefs/req/static-analysis-1.yml
+++ b/spec/rtems/basedefs/req/static-analysis-1.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/static-analysis
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the macro ``__COVERITY__`` is not defined,
   the macro ${../if/static-analysis:/name} shall be not defined.
diff --git a/spec/rtems/basedefs/req/static-assert-0.yml b/spec/rtems/basedefs/req/static-assert-0.yml
index 2bffcbf4..ae1f95fb 100644
--- a/spec/rtems/basedefs/req/static-assert-0.yml
+++ b/spec/rtems/basedefs/req/static-assert-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/static-assert
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument ${../if/static-assert:/params[0]/name} after
   applying all possible C pre-processor substitutions to its
diff --git a/spec/rtems/basedefs/req/string-0.yml b/spec/rtems/basedefs/req/string-0.yml
index 399a898e..5a72d5d8 100644
--- a/spec/rtems/basedefs/req/string-0.yml
+++ b/spec/rtems/basedefs/req/string-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/string
-non-functional-type: interface
 rationale: |
   The exact rules on how this string is build are defined by the C standard
   and are too complex to be repeated in this requirement.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The ${../if/string:/name} macro shall result in a string formed by
   the C pre-processor ``#`` operator placed before the formal parameter.
diff --git a/spec/rtems/basedefs/req/true-0.yml b/spec/rtems/basedefs/req/true-0.yml
index a6e69e44..6fd4b865 100644
--- a/spec/rtems/basedefs/req/true-0.yml
+++ b/spec/rtems/basedefs/req/true-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/true
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/true:/name} shall result in the text 1.
 type: requirement
diff --git a/spec/rtems/basedefs/req/typeof-refx-0.yml b/spec/rtems/basedefs/req/typeof-refx-0.yml
index 8017776a..3a7dbb0e 100644
--- a/spec/rtems/basedefs/req/typeof-refx-0.yml
+++ b/spec/rtems/basedefs/req/typeof-refx-0.yml
@@ -2,17 +2,17 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/typeof-refx
-non-functional-type: interface
 rationale: |
   From the GNU C compiler documentation:
   The operand of ${../if/typeof-refx:/params[1]/name} is evaluated for
   its side effects if and only if it is an expression of variably
   modified type or the name of such a type.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the argument value of ${../if/typeof-refx:/params[0]/name} consists
   of a sequence of *i* ``*`` and the type of the other argument
diff --git a/spec/rtems/basedefs/req/unreachable-0.yml b/spec/rtems/basedefs/req/unreachable-0.yml
index 2b4b5039..d50f78eb 100644
--- a/spec/rtems/basedefs/req/unreachable-0.yml
+++ b/spec/rtems/basedefs/req/unreachable-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/unreachable
-non-functional-type: interface
 rationale: |
   The use of this macro will suppress some compiler warnings
   and may permit some compiler optimizations.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/unreachable:/name} macro is placed in a part of
diff --git a/spec/rtems/basedefs/req/unused-0.yml b/spec/rtems/basedefs/req/unused-0.yml
index 422ddb2a..b725f297 100644
--- a/spec/rtems/basedefs/req/unused-0.yml
+++ b/spec/rtems/basedefs/req/unused-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/unused
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/unused:/name} macro is attached to a function definition,
diff --git a/spec/rtems/basedefs/req/unused-1.yml b/spec/rtems/basedefs/req/unused-1.yml
index 1501c427..ae598667 100644
--- a/spec/rtems/basedefs/req/unused-1.yml
+++ b/spec/rtems/basedefs/req/unused-1.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/unused
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/unused:/name} macro is appended to a label in this form:
diff --git a/spec/rtems/basedefs/req/unused-2.yml b/spec/rtems/basedefs/req/unused-2.yml
index 32e08b12..0edfe064 100644
--- a/spec/rtems/basedefs/req/unused-2.yml
+++ b/spec/rtems/basedefs/req/unused-2.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/unused
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/unused:/name} macro is attached to a type
diff --git a/spec/rtems/basedefs/req/unused-3.yml b/spec/rtems/basedefs/req/unused-3.yml
index b2d2bcb2..bed26981 100644
--- a/spec/rtems/basedefs/req/unused-3.yml
+++ b/spec/rtems/basedefs/req/unused-3.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/unused
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/unused:/name} macro is attached to a variable definition,
diff --git a/spec/rtems/basedefs/req/used-0.yml b/spec/rtems/basedefs/req/used-0.yml
index 7a95a770..08921f7b 100644
--- a/spec/rtems/basedefs/req/used-0.yml
+++ b/spec/rtems/basedefs/req/used-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/used
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/used:/name} is macro attached to
diff --git a/spec/rtems/basedefs/req/warn-unused-result-0.yml b/spec/rtems/basedefs/req/warn-unused-result-0.yml
index 4fef4b24..f34fb6eb 100644
--- a/spec/rtems/basedefs/req/warn-unused-result-0.yml
+++ b/spec/rtems/basedefs/req/warn-unused-result-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/warn-unused-result
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/warn-unused-result:/name} macro is used as last part
diff --git a/spec/rtems/basedefs/req/weak-0.yml b/spec/rtems/basedefs/req/weak-0.yml
index 3b32ed99..c4180c24 100644
--- a/spec/rtems/basedefs/req/weak-0.yml
+++ b/spec/rtems/basedefs/req/weak-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/weak
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the produced target file format is ELF or a.out,
diff --git a/spec/rtems/basedefs/req/weak-1.yml b/spec/rtems/basedefs/req/weak-1.yml
index b09affc4..7eb35968 100644
--- a/spec/rtems/basedefs/req/weak-1.yml
+++ b/spec/rtems/basedefs/req/weak-1.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/weak
-non-functional-type: interface
 rationale: |
   The other symbol with the same name can possibly be defined in
   another compilation unit and linked with the compilation
   unit containing the function or variable defined with ${../if/weak:/name}.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the produced target file format is ELF or a.out,
diff --git a/spec/rtems/basedefs/req/weak-alias-0.yml b/spec/rtems/basedefs/req/weak-alias-0.yml
index 91c9ce03..6e344d8c 100644
--- a/spec/rtems/basedefs/req/weak-alias-0.yml
+++ b/spec/rtems/basedefs/req/weak-alias-0.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/weak-alias
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the produced target file format is ELF or a.out,
diff --git a/spec/rtems/basedefs/req/weak-alias-1.yml b/spec/rtems/basedefs/req/weak-alias-1.yml
index 12143c89..f22e7e45 100644
--- a/spec/rtems/basedefs/req/weak-alias-1.yml
+++ b/spec/rtems/basedefs/req/weak-alias-1.yml
@@ -2,17 +2,17 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/weak-alias
-non-functional-type: interface
 rationale: |
   The other function at global scope with the same name as
   ``newname`` can possibly be defined in
   another compilation unit and linked with the compilation
   unit containing the function defined with ${../if/weak-alias:/name}.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the produced target file format is ELF or a.out,
diff --git a/spec/rtems/basedefs/req/xconcat-0.yml b/spec/rtems/basedefs/req/xconcat-0.yml
index 31b2c9c4..c8b98c84 100644
--- a/spec/rtems/basedefs/req/xconcat-0.yml
+++ b/spec/rtems/basedefs/req/xconcat-0.yml
@@ -2,16 +2,16 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/xconcat
-non-functional-type: interface
 rationale: |
   All possible C pre-processor substitutions include here
   calls to the macro itself as well as none if no substitution is
   possible.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/xconcat:/name} shall apply all possible C
   pre-processor substitutions to its argument values
diff --git a/spec/rtems/basedefs/req/xconcat-1.yml b/spec/rtems/basedefs/req/xconcat-1.yml
index 428e0971..c5a6bf3f 100644
--- a/spec/rtems/basedefs/req/xconcat-1.yml
+++ b/spec/rtems/basedefs/req/xconcat-1.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/xconcat
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/xconcat:/name} shall result
   in the substituted argument values textually concatenated
diff --git a/spec/rtems/basedefs/req/xconcat-2.yml b/spec/rtems/basedefs/req/xconcat-2.yml
index 9538d52f..cd71d3a7 100644
--- a/spec/rtems/basedefs/req/xconcat-2.yml
+++ b/spec/rtems/basedefs/req/xconcat-2.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/xconcat
-non-functional-type: interface
 rationale: |
   There should be no additional character before, between or after the
   arguments in the result.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/xconcat:/name} shall result in only those
   characters which also appear in its argument values
diff --git a/spec/rtems/basedefs/req/xconcat-3.yml b/spec/rtems/basedefs/req/xconcat-3.yml
index 3e80e75f..ac83793e 100644
--- a/spec/rtems/basedefs/req/xconcat-3.yml
+++ b/spec/rtems/basedefs/req/xconcat-3.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/xconcat
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/xconcat:/name} shall make its result
   subject to C pre-processor substitutions.
diff --git a/spec/rtems/basedefs/req/xstring-0.yml b/spec/rtems/basedefs/req/xstring-0.yml
index 92e5d9cd..430fb674 100644
--- a/spec/rtems/basedefs/req/xstring-0.yml
+++ b/spec/rtems/basedefs/req/xstring-0.yml
@@ -2,15 +2,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/xstring
-non-functional-type: interface
 rationale: |
   The exact rules on how this string is build are defined by the C
   standard and are too complex to be repeated in this requirement.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The macro ${../if/xstring:/name} shall apply all possible C
   pre-processor substitutions to its argument values before
diff --git a/spec/rtems/basedefs/req/zero-length-array-0.yml b/spec/rtems/basedefs/req/zero-length-array-0.yml
index ffca761b..9d3b5191 100644
--- a/spec/rtems/basedefs/req/zero-length-array-0.yml
+++ b/spec/rtems/basedefs/req/zero-length-array-0.yml
@@ -2,10 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/zero-length-array
-non-functional-type: interface
 rationale: |
   From GNU C documentation:
 
@@ -29,7 +29,7 @@ rationale: |
   that 0 elements). See the documentation of the GNU C compiler
   below keyword: *arrays of length zero*.
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When the code is compiled with the GNU C compiler,
   and the ${../if/zero-length-array:/name} macro is used as
diff --git a/spec/rtems/clock/req/get-ticks-per-second.yml b/spec/rtems/clock/req/get-ticks-per-second.yml
index f34b82cf..b36cbb4d 100644
--- a/spec/rtems/clock/req/get-ticks-per-second.yml
+++ b/spec/rtems/clock/req/get-ticks-per-second.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/get-ticks-per-second
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The ${../if/get-ticks-per-second:/name} function shall
   return the number of clock ticks per second which is defined indirectly
diff --git a/spec/rtems/clock/req/get-ticks-since-boot.yml b/spec/rtems/clock/req/get-ticks-since-boot.yml
index 95c40881..f0b530e3 100644
--- a/spec/rtems/clock/req/get-ticks-since-boot.yml
+++ b/spec/rtems/clock/req/get-ticks-since-boot.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/get-ticks-since-boot
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The ${../if/get-ticks-since-boot:/name} function shall
   return the number of ${/glossary/clock-tick:/plural} since a
diff --git a/spec/rtems/message/req/buffer.yml b/spec/rtems/message/req/buffer.yml
index e5ea6580..dda4c0bb 100644
--- a/spec/rtems/message/req/buffer.yml
+++ b/spec/rtems/message/req/buffer.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/buffer
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   When argument ${../if/buffer:/params[0]/name} is the size of
   the largest possible message in bytes
diff --git a/spec/rtems/mode/req/masks-all.yml b/spec/rtems/mode/req/masks-all.yml
index 8acf5f6a..b9e8cebf 100644
--- a/spec/rtems/mode/req/masks-all.yml
+++ b/spec/rtems/mode/req/masks-all.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/all-mode-masks
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The bitwise and of a task mode mask constant and
   ${../if/all-mode-masks:/name} shall be equal to the task mode mask constant.
diff --git a/spec/rtems/option/req/default-equals.yml b/spec/rtems/option/req/default-equals.yml
index 64093484..dafa27d0 100644
--- a/spec/rtems/option/req/default-equals.yml
+++ b/spec/rtems/option/req/default-equals.yml
@@ -2,13 +2,13 @@ SPDX-License-Identifier: CC-BY-SA-4.0
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
+functional-type: function
 links:
 - role: interface-function
   uid: ../if/default
-non-functional-type: interface
 rationale: null
 references: []
-requirement-type: non-functional
+requirement-type: functional
 text: |
   The value of macro ${../if/default:/name} shall be equal
   to the value of expression ``${../if/wait:/name}``.



More information about the vc mailing list