summaryrefslogtreecommitdiffstats
path: root/eng/req/items.rst
diff options
context:
space:
mode:
Diffstat (limited to 'eng/req/items.rst')
-rw-r--r--eng/req/items.rst770
1 files changed, 641 insertions, 129 deletions
diff --git a/eng/req/items.rst b/eng/req/items.rst
index 19e8726..286e998 100644
--- a/eng/req/items.rst
+++ b/eng/req/items.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019, 2022 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2019, 2023 embedded brains GmbH & Co. KG
.. This file is part of the RTEMS quality process and was automatically
.. generated. If you find something that needs to be fixed or
@@ -95,10 +95,16 @@ The specification item types have the following hierarchy:
* :ref:`SpecTypeInterfaceTypedefItemType`
+ * :ref:`SpecTypeInterfaceUnspecifiedHeaderFileItemType`
+
* :ref:`SpecTypeInterfaceUnspecifiedItemType`
* :ref:`SpecTypeInterfaceVariableItemType`
+ * :ref:`SpecTypeRegisterBlockItemType`
+
+ * :ref:`SpecTypeProxyItemTypes`
+
* :ref:`SpecTypeRequirementItemType`
* :ref:`SpecTypeFunctionalRequirementItemType`
@@ -111,8 +117,12 @@ The specification item types have the following hierarchy:
* :ref:`SpecTypeDesignGroupRequirementItemType`
+ * :ref:`SpecTypeDesignTargetItemType`
+
* :ref:`SpecTypeGenericNonFunctionalRequirementItemType`
+ * :ref:`SpecTypeRuntimeMeasurementEnvironmentItemType`
+
* :ref:`SpecTypeRuntimePerformanceRequirementItemType`
* :ref:`SpecTypeRequirementValidationItemType`
@@ -189,6 +199,8 @@ This type is refined by the following types:
* :ref:`SpecTypeInterfaceItemType`
+* :ref:`SpecTypeProxyItemTypes`
+
* :ref:`SpecTypeRequirementItemType`
* :ref:`SpecTypeRequirementValidationItemType`
@@ -327,7 +339,7 @@ Please have a look at the following example:
build-type: ada-test-program
cflags: []
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
cxxflags: []
enabled-by: true
@@ -394,7 +406,7 @@ Please have a look at the following example:
build-type: bsp
cflags: []
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
enabled-by: true
family: mybsp
@@ -464,7 +476,7 @@ Please have a look at the following example:
Name: ${ARCH}-rtems${__RTEMS_MAJOR__}-${BSP_NAME}
# ...
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
enabled-by: true
install-path: ${PREFIX}/lib/pkgconfig
links: []
@@ -553,7 +565,7 @@ Please have a look at the following example:
build-type: group
cflags: []
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
cxxflags: []
enabled-by:
@@ -625,7 +637,7 @@ Please have a look at the following example:
cflags:
- -Wno-pointer-sign
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
cxxflags: []
enabled-by: true
@@ -649,8 +661,12 @@ Build Objects Item Type
This type refines the :ref:`SpecTypeBuildItemType` through the ``build-type``
attribute if the value is ``objects``. This set of attributes specifies a set
-of object files used to build static libraries or test programs. All explicit
-attributes shall be specified. The explicit attributes for this type are:
+of object files used to build static libraries or test programs. Objects Items
+must not be included on multiple paths through the build dependency graph with
+identical build options. Violating this can cause race conditions in the build
+system due to duplicate installs and multiple instances of build tasks. All
+explicit attributes shall be specified. The explicit attributes for this type
+are:
cflags
The attribute value shall be a list. Each list element shall be a
@@ -684,7 +700,7 @@ Please have a look at the following example:
build-type: objects
cflags: []
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
cxxflags: []
enabled-by: true
@@ -756,7 +772,7 @@ Please have a look at the following example:
- define: null
build-type: option
copyrights:
- - Copyright (C) 2020, 2022 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020, 2022 embedded brains GmbH & Co. KG
default:
- enabled-by:
- bsps/powerpc/motorola_powerpc
@@ -853,6 +869,9 @@ stlib
The attribute value shall be a list. Each list element shall be a
:ref:`SpecTypeBuildLinkStaticLibraryDirective`.
+target
+ The attribute value shall be a :ref:`SpecTypeBuildTarget`.
+
use-after
The attribute value shall be a list. Each list element shall be a
:ref:`SpecTypeBuildUseAfterDirective`.
@@ -868,7 +887,7 @@ Please have a look at the following example:
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
build-type: script
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
default: null
default-by-variant: []
do-build: |
@@ -928,7 +947,7 @@ Please have a look at the following example:
asflags: []
build-type: start-file
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
enabled-by: true
includes: []
@@ -1004,7 +1023,7 @@ Please have a look at the following example:
build-type: test-program
cflags: []
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
cppflags: []
cxxflags: []
enabled-by: true
@@ -1143,10 +1162,14 @@ This type is refined by the following types:
* :ref:`SpecTypeInterfaceTypedefItemType`
+* :ref:`SpecTypeInterfaceUnspecifiedHeaderFileItemType`
+
* :ref:`SpecTypeInterfaceUnspecifiedItemType`
* :ref:`SpecTypeInterfaceVariableItemType`
+* :ref:`SpecTypeRegisterBlockItemType`
+
.. _SpecTypeApplicationConfigurationGroupItemType:
Application Configuration Group Item Type
@@ -1518,6 +1541,24 @@ params
return
The attribute value shall be an :ref:`SpecTypeInterfaceReturnDirective`.
+.. _SpecTypeInterfaceUnspecifiedHeaderFileItemType:
+
+Interface Unspecified Header File Item Type
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeInterfaceItemType` through the
+``interface-type`` attribute if the value is ``unspecified-header-file``. This
+set of attributes specifies an unspecified header file. All explicit attributes
+shall be specified. The explicit attributes for this type are:
+
+path
+ The attribute value shall be a string. It shall be the path used to include
+ the header file. For example :file:`rtems/confdefs.h`.
+
+references
+ The attribute value shall be a list. Each list element shall be an
+ :ref:`SpecTypeExternalReference`.
+
.. _SpecTypeInterfaceUnspecifiedItemType:
Interface Unspecified Item Type
@@ -1529,9 +1570,6 @@ This type refines the following types:
the value is ``unspecified-define``
* :ref:`SpecTypeInterfaceItemType` through the ``interface-type`` attribute if
- the value is ``unspecified-define-or-object``
-
-* :ref:`SpecTypeInterfaceItemType` through the ``interface-type`` attribute if
the value is ``unspecified-enum``
* :ref:`SpecTypeInterfaceItemType` through the ``interface-type`` attribute if
@@ -1547,9 +1585,6 @@ This type refines the following types:
the value is ``unspecified-macro``
* :ref:`SpecTypeInterfaceItemType` through the ``interface-type`` attribute if
- the value is ``unspecified-macro-or-function``
-
-* :ref:`SpecTypeInterfaceItemType` through the ``interface-type`` attribute if
the value is ``unspecified-object``
* :ref:`SpecTypeInterfaceItemType` through the ``interface-type`` attribute if
@@ -1569,7 +1604,8 @@ name
unspecified interface.
references
- The attribute value shall be an :ref:`SpecTypeInterfaceReferencesSet`.
+ The attribute value shall be a list. Each list element shall be an
+ :ref:`SpecTypeExternalReference`.
.. _SpecTypeInterfaceVariableItemType:
@@ -1598,6 +1634,78 @@ name
notes
The attribute value shall be an :ref:`SpecTypeInterfaceNotes`.
+.. _SpecTypeRegisterBlockItemType:
+
+Register Block Item Type
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeInterfaceItemType` through the
+``interface-type`` attribute if the value is ``register-block``. This set of
+attributes specifies a register block. A register block may be used to specify
+the interface of devices. Register blocks consist of register block members
+specified by the ``definition`` attribute. Register block members are either
+instances of registers specified by the ``registers`` attribute or instances of
+other register blocks specified by links with the
+:ref:`SpecTypeRegisterBlockIncludeRole`. Registers consists of bit fields (see
+:ref:`SpecTypeRegisterBitsDefinition`. The register block members are placed
+into the address space of the device relative to the base address of the
+register block. Register member offsets and the register block size are
+specified in units of the address space granule. All explicit attributes shall
+be specified. The explicit attributes for this type are:
+
+brief
+ The attribute value shall be an :ref:`SpecTypeInterfaceBriefDescription`.
+
+definition
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterBlockMemberDefinitionDirective`.
+
+description
+ The attribute value shall be an :ref:`SpecTypeInterfaceDescription`.
+
+identifier
+ The attribute value shall be an :ref:`SpecTypeInterfaceGroupIdentifier`.
+
+name
+ The attribute value shall be a string. It shall be the name of the register
+ block.
+
+notes
+ The attribute value shall be an :ref:`SpecTypeInterfaceNotes`.
+
+register-block-group
+ The attribute value shall be a string. It shall be the name of the
+ interface group defined for the register block. For the group identifier
+ see the ``identifier`` attribute.
+
+register-block-size
+ The attribute value shall be an :ref:`SpecTypeOptionalInteger`. If the
+ value is present, then it shall be the size of the register block in units
+ of the address space granule.
+
+register-prefix
+ The attribute value shall be an optional string. If the value is present,
+ then it will be used to prefix register bit field names, otherwise the
+ value of the ``name`` attribute will be used.
+
+registers
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterDefinition`.
+
+.. _SpecTypeProxyItemTypes:
+
+Proxy Item Types
+^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeRootItemType` through the ``type``
+attribute if the value is ``proxy``. Items of similar characteristics may link
+to a proxy item through links with the :ref:`SpecTypeProxyMemberLinkRole`. A
+proxy item resolves to the first member item which is enabled. Proxies may be
+used to provide an interface with a common name and implementations which
+depend on configuration options. For example, in one configuration a constant
+could be a compile time constant and in another configuration it could be a
+read-only object.
+
.. _SpecTypeRequirementItemType:
Requirement Item Type
@@ -1613,8 +1721,8 @@ rationale
then it shall state the rationale or justification of the requirement.
references
- The attribute value shall be a list. Each list element shall be a
- :ref:`SpecTypeRequirementReference`.
+ The attribute value shall be a list. Each list element shall be an
+ :ref:`SpecTypeExternalReference`.
requirement-type
The attribute value shall be a :ref:`SpecTypeName`. It shall be the
@@ -1636,7 +1744,7 @@ Please have a look at the following example:
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
enabled-by: true
functional-type: capability
links: []
@@ -1782,7 +1890,7 @@ Please have a look at the following example:
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
enabled-by: true
functional-type: action
links: []
@@ -1918,6 +2026,9 @@ This type refines the following types:
attribute if the value is ``function``
* :ref:`SpecTypeFunctionalRequirementItemType` through the ``functional-type``
+ attribute if the value is ``interface-define-not-defined``
+
+* :ref:`SpecTypeFunctionalRequirementItemType` through the ``functional-type``
attribute if the value is ``operational``
* :ref:`SpecTypeFunctionalRequirementItemType` through the ``functional-type``
@@ -1944,8 +2055,12 @@ This type is refined by the following types:
* :ref:`SpecTypeDesignGroupRequirementItemType`
+* :ref:`SpecTypeDesignTargetItemType`
+
* :ref:`SpecTypeGenericNonFunctionalRequirementItemType`
+* :ref:`SpecTypeRuntimeMeasurementEnvironmentItemType`
+
* :ref:`SpecTypeRuntimePerformanceRequirementItemType`
.. _SpecTypeDesignGroupRequirementItemType:
@@ -1964,7 +2079,29 @@ software source code. All explicit attributes shall be specified. The explicit
attributes for this type are:
identifier
- The attribute value shall be an :ref:`SpecTypeInterfaceGroupIdentifier`.
+ The attribute value shall be a
+ :ref:`SpecTypeRequirementDesignGroupIdentifier`.
+
+.. _SpecTypeDesignTargetItemType:
+
+Design Target Item Type
+^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeNonFunctionalRequirementItemType` through
+the ``non-functional-type`` attribute if the value is ``design-target``. This
+set of attributes specifies a design :term:`target`. All explicit attributes
+shall be specified. The explicit attributes for this type are:
+
+brief
+ The attribute value shall be an optional string. If the value is present,
+ then it shall briefly describe the target.
+
+description
+ The attribute value shall be an optional string. If the value is present,
+ then it shall thoroughly describe the target.
+
+name
+ The attribute value shall be a string. It shall be the target name.
.. _SpecTypeGenericNonFunctionalRequirementItemType:
@@ -1998,6 +2135,10 @@ This type refines the following types:
``non-functional-type`` attribute if the value is ``performance``
* :ref:`SpecTypeNonFunctionalRequirementItemType` through the
+ ``non-functional-type`` attribute if the value is
+ ``performance-runtime-limits``
+
+* :ref:`SpecTypeNonFunctionalRequirementItemType` through the
``non-functional-type`` attribute if the value is ``portability``
* :ref:`SpecTypeNonFunctionalRequirementItemType` through the
@@ -2015,6 +2156,22 @@ This type refines the following types:
Items of this type state a non-functional requirement with the non-functional
type defined by the specification type refinement.
+.. _SpecTypeRuntimeMeasurementEnvironmentItemType:
+
+Runtime Measurement Environment Item Type
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeNonFunctionalRequirementItemType` through
+the ``non-functional-type`` attribute if the value is
+``performance-runtime-environment``. This set of attributes specifies a runtime
+measurement environment. All explicit attributes shall be specified. The
+explicit attributes for this type are:
+
+name
+ The attribute value shall be a string. It shall be the runtime measurement
+ environment name. See also
+ :ref:`SpecTypeRuntimeMeasurementEnvironmentName`.
+
.. _SpecTypeRuntimePerformanceRequirementItemType:
Runtime Performance Requirement Item Type
@@ -2063,9 +2220,6 @@ the requirement, the validation test code to execute a measure runtime request
is specified. All explicit attributes shall be specified. The explicit
attributes for this type are:
-limits
- The attribute value shall be a :ref:`SpecTypeRuntimePerformanceLimitTable`.
-
params
The attribute value shall be a
:ref:`SpecTypeRuntimePerformanceParameterSet`.
@@ -2101,34 +2255,11 @@ Please have a look at the following example:
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
enabled-by: true
links:
- role: runtime-measurement-request
- uid: ../val/performance
- limits:
- sparc/leon3:
- DirtyCache:
- max-upper-bound: 0.000005
- mean-upper-bound: 0.000005
- FullCache:
- max-upper-bound: 0.000005
- mean-upper-bound: 0.000005
- HotCache:
- max-upper-bound: 0.000005
- mean-upper-bound: 0.000005
- Load/1:
- max-upper-bound: 0.00001
- mean-upper-bound: 0.00001
- Load/2:
- max-upper-bound: 0.00001
- mean-upper-bound: 0.00001
- Load/3:
- max-upper-bound: 0.00001
- mean-upper-bound: 0.00001
- Load/4:
- max-upper-bound: 0.00001
- mean-upper-bound: 0.00001
+ uid: ../val/perf
params: {}
rationale: null
references: []
@@ -2155,11 +2286,11 @@ Please have a look at the following example:
return tic == toc;
description: null
text: |
- When a partition has exactly ${../val/performance:/params/buffer-count} free
- buffers, the ${.:limit-kind} runtime of exactly
- ${../val/performance:/params/sample-count} successful calls to
+ When a partition has exactly ${../val/perf:/params/buffer-count} free
+ buffers, the ${.:/limit-kind} runtime of exactly
+ ${../val/perf:/params/sample-count} successful calls to
${../if/get-buffer:/name} in the ${.:/environment} shall be
- ${.:limit-condition}.
+ ${.:/limit-condition}.
non-functional-type: performance-runtime
requirement-type: non-functional
type: requirement
@@ -2177,8 +2308,13 @@ All explicit attributes shall be specified. The explicit attributes for this
type are:
method
- The attribute value shall be a :ref:`SpecTypeRequirementValidationMethod`.
- Validation by test is done through :ref:`SpecTypeTestCaseItemType` items.
+ The attribute value shall be a :ref:`SpecTypeName`. It shall specify the
+ requirement validation method (except validation by test). Validation by
+ test is done through :ref:`SpecTypeTestCaseItemType` items.
+
+references
+ The attribute value shall be a list. Each list element shall be an
+ :ref:`SpecTypeExternalReference`.
text
The attribute value shall be a string. It shall provide the validation
@@ -2318,7 +2454,7 @@ Please have a look at the following example:
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ - Copyright (C) 2020 embedded brains GmbH & Co. KG
enabled-by: true
links:
- role: spec-member
@@ -2493,10 +2629,6 @@ test-local-includes
The attribute value shall be a list of strings. It shall be a list of
header files included via ``#include "..."``.
-test-suite-name
- The attribute value shall be a string. It shall be the name of the test
- suite.
-
test-target
The attribute value shall be a string. It shall be the path to the
generated target test suite source file.
@@ -3034,6 +3166,20 @@ This type is used by the following types:
* :ref:`SpecTypeBuildTestProgramItemType`
+.. _SpecTypeBuildDependencyConditionalLinkRole:
+
+Build Dependency Conditional Link Role
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeLink` through the ``role`` attribute if the
+value is ``build-dependency-conditional``. It defines the build dependency
+conditional role of links. All explicit attributes shall be specified. The
+explicit attributes for this type are:
+
+enabled-by
+ The attribute value shall be an :ref:`SpecTypeEnabledByExpression`. It
+ shall define under which conditions the build dependency is enabled.
+
.. _SpecTypeBuildDependencyLinkRole:
Build Dependency Link Role
@@ -3537,6 +3683,8 @@ This type is used by the following types:
* :ref:`SpecTypeBuildLibraryItemType`
+* :ref:`SpecTypeBuildScriptItemType`
+
* :ref:`SpecTypeBuildStartFileItemType`
* :ref:`SpecTypeBuildTestProgramItemType`
@@ -3678,6 +3826,8 @@ This type is used by the following types:
* :ref:`SpecTypeActionRequirementTransition`
+* :ref:`SpecTypeBuildDependencyConditionalLinkRole`
+
* :ref:`SpecTypeBuildOptionDefaultValue`
* :ref:`SpecTypeEnabledByExpression`
@@ -3695,6 +3845,73 @@ Please have a look at the following example:
- RTEMS_NETWORKING
- not: RTEMS_SMP
+.. _SpecTypeExternalDocumentReference:
+
+External Document Reference
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeExternalReference` through the ``type``
+attribute if the value is ``document``. It specifies a reference to a document.
+
+All explicit attributes shall be specified. The explicit attributes for this
+type are:
+
+name
+ The attribute value shall be a string. It shall be the name of the
+ document.
+
+.. _SpecTypeExternalFileReference:
+
+External File Reference
+^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeExternalReference` through the ``type``
+attribute if the value is ``file``. It specifies a reference to a file.
+
+All explicit attributes shall be specified. The explicit attributes for this
+type are:
+
+hash
+ The attribute value shall be a :ref:`SpecTypeSHA256HashValue`. It shall be
+ the SHA256 hash value of the content of the referenced file.
+
+.. _SpecTypeExternalReference:
+
+External Reference
+^^^^^^^^^^^^^^^^^^
+
+This set of attributes specifies a reference to some object external to the
+specification. All explicit attributes shall be specified. The explicit
+attributes for this type are:
+
+identifier
+ The attribute value shall be a string. It shall be the type-specific
+ identifier of the referenced object. For *group* references use the Doxygen
+ group identifier. For *file* references use a file system path to the
+ file.
+
+type
+ The attribute value shall be a :ref:`SpecTypeName`. It shall be the type of
+ the referenced object.
+
+This type is refined by the following types:
+
+* :ref:`SpecTypeExternalDocumentReference`
+
+* :ref:`SpecTypeExternalFileReference`
+
+* :ref:`SpecTypeGenericExternalReference`
+
+This type is used by the following types:
+
+* :ref:`SpecTypeInterfaceUnspecifiedHeaderFileItemType`
+
+* :ref:`SpecTypeInterfaceUnspecifiedItemType`
+
+* :ref:`SpecTypeRequirementItemType`
+
+* :ref:`SpecTypeRequirementValidationItemType`
+
.. _SpecTypeFunctionImplementationLinkRole:
Function Implementation Link Role
@@ -3706,6 +3923,33 @@ role of links. It is used to indicate that a
:ref:`SpecTypeFunctionalRequirementItemType` item specifies parts of the
function.
+.. _SpecTypeGenericExternalReference:
+
+Generic External Reference
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the following types:
+
+* :ref:`SpecTypeExternalReference` through the ``type`` attribute if the value
+ is ``define``
+
+* :ref:`SpecTypeExternalReference` through the ``type`` attribute if the value
+ is ``function``
+
+* :ref:`SpecTypeExternalReference` through the ``type`` attribute if the value
+ is ``group``
+
+* :ref:`SpecTypeExternalReference` through the ``type`` attribute if the value
+ is ``macro``
+
+* :ref:`SpecTypeExternalReference` through the ``type`` attribute if the value
+ is ``url``
+
+* :ref:`SpecTypeExternalReference` through the ``type`` attribute if the value
+ is ``variable``
+
+It specifies a reference to an object of the specified type.
+
.. _SpecTypeGlossaryMembershipLinkRole:
Glossary Membership Link Role
@@ -3766,6 +4010,12 @@ This type is used by the following types:
* :ref:`SpecTypeInterfaceVariableItemType`
+* :ref:`SpecTypeRegisterBitsDefinition`
+
+* :ref:`SpecTypeRegisterBlockItemType`
+
+* :ref:`SpecTypeRegisterDefinition`
+
.. _SpecTypeInterfaceCompoundDefinitionKind:
Interface Compound Definition Kind
@@ -4021,6 +4271,12 @@ This type is used by the following types:
* :ref:`SpecTypeInterfaceVariableItemType`
+* :ref:`SpecTypeRegisterBitsDefinition`
+
+* :ref:`SpecTypeRegisterBlockItemType`
+
+* :ref:`SpecTypeRegisterDefinition`
+
.. _SpecTypeInterfaceEnabledByExpression:
Interface Enabled-By Expression
@@ -4070,6 +4326,10 @@ This type is used by the following types:
* :ref:`SpecTypeInterfaceFunctionOrMacroDefinitionVariant`
+* :ref:`SpecTypeRegisterBitsDefinitionVariant`
+
+* :ref:`SpecTypeRegisterBlockMemberDefinitionVariant`
+
.. _SpecTypeInterfaceEnumDefinitionKind:
Interface Enum Definition Kind
@@ -4209,10 +4469,10 @@ The value shall match with the regular expression "``^[A-Z][a-zA-Z0-9]*$``".
This type is used by the following types:
-* :ref:`SpecTypeDesignGroupRequirementItemType`
-
* :ref:`SpecTypeInterfaceGroupItemType`
+* :ref:`SpecTypeRegisterBlockItemType`
+
.. _SpecTypeInterfaceGroupMembershipLinkRole:
Interface Group Membership Link Role
@@ -4277,6 +4537,8 @@ This type is used by the following types:
* :ref:`SpecTypeInterfaceVariableItemType`
+* :ref:`SpecTypeRegisterBlockItemType`
+
.. _SpecTypeInterfaceParameter:
Interface Parameter
@@ -4335,20 +4597,6 @@ value is ``interface-placement``. It defines the interface placement role of
links. It is used to indicate that an interface definition is placed into an
interface container, for example a header file.
-.. _SpecTypeInterfaceReferencesSet:
-
-Interface References Set
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-This set of attributes defines references for the interface. Generic attributes
-may be specified. Each generic attribute key shall be a :ref:`SpecTypeName`.
-Each generic attribute value shall be a string. The key defines the reference
-kind. The value shall be a kind-specific reference target.
-
-This type is used by the following types:
-
-* :ref:`SpecTypeInterfaceUnspecifiedItemType`
-
.. _SpecTypeInterfaceReturnDirective:
Interface Return Directive
@@ -4424,7 +4672,7 @@ uid
This type is refined by the following types:
-* :ref:`SpecTypeApplicationConfigurationGroupMemberLinkRole`
+* :ref:`SpecTypeBuildDependencyConditionalLinkRole`
* :ref:`SpecTypeBuildDependencyLinkRole`
@@ -4448,8 +4696,14 @@ This type is refined by the following types:
* :ref:`SpecTypeInterfaceTargetLinkRole`
+* :ref:`SpecTypePerformanceRuntimeLimitsLinkRole`
+
* :ref:`SpecTypePlacementOrderLinkRole`
+* :ref:`SpecTypeProxyMemberLinkRole`
+
+* :ref:`SpecTypeRegisterBlockIncludeRole`
+
* :ref:`SpecTypeRequirementRefinementLinkRole`
* :ref:`SpecTypeRequirementValidationLinkRole`
@@ -4484,7 +4738,7 @@ This type is used by the following types:
* :ref:`SpecTypeBuildItemType`
-* :ref:`SpecTypeBuildOptionSetTestStateAction`
+* :ref:`SpecTypeExternalReference`
* :ref:`SpecTypeFunctionalRequirementItemType`
@@ -4492,14 +4746,16 @@ This type is used by the following types:
* :ref:`SpecTypeInterfaceItemType`
-* :ref:`SpecTypeInterfaceReferencesSet`
-
* :ref:`SpecTypeLink`
* :ref:`SpecTypeNonFunctionalRequirementItemType`
+* :ref:`SpecTypeRegisterDefinition`
+
* :ref:`SpecTypeRequirementItemType`
+* :ref:`SpecTypeRequirementValidationItemType`
+
* :ref:`SpecTypeRootItemType`
* :ref:`SpecTypeRuntimeMeasurementParameterSet`
@@ -4518,6 +4774,32 @@ This type is used by the following types:
* :ref:`SpecTypeSpecificationRefinementLinkRole`
+.. _SpecTypeOptionalFloatingPointNumber:
+
+Optional Floating-Point Number
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A value of this type shall be of one of the following variants:
+
+* The value may be a floating-point number.
+
+* There may be no value (null).
+
+.. _SpecTypeOptionalInteger:
+
+Optional Integer
+^^^^^^^^^^^^^^^^
+
+A value of this type shall be of one of the following variants:
+
+* The value may be an integer number.
+
+* There may be no value (null).
+
+This type is used by the following types:
+
+* :ref:`SpecTypeRegisterBlockItemType`
+
.. _SpecTypeOptionalString:
Optional String
@@ -4529,6 +4811,20 @@ A value of this type shall be of one of the following variants:
* The value may be a string.
+.. _SpecTypePerformanceRuntimeLimitsLinkRole:
+
+Performance Runtime Limits Link Role
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeLink` through the ``role`` attribute if the
+value is ``performance-runtime-limits``. It defines the performance runtime
+limits role of links. All explicit attributes shall be specified. The explicit
+attributes for this type are:
+
+limits
+ The attribute value shall be a
+ :ref:`SpecTypeRuntimeMeasurementEnvironmentTable`.
+
.. _SpecTypePlacementOrderLinkRole:
Placement Order Link Role
@@ -4539,49 +4835,267 @@ value is ``placement-order``. This link role defines the placement order of
items in a container item (for example an interface function in a header file
or a documentation section).
-.. _SpecTypeRequirementReference:
+.. _SpecTypeProxyMemberLinkRole:
-Requirement Reference
-^^^^^^^^^^^^^^^^^^^^^
+Proxy Member Link Role
+^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeLink` through the ``role`` attribute if the
+value is ``proxy-member``. It defines the proxy member role of links. Items
+may use this role to link to :ref:`SpecTypeProxyItemTypes` items.
+
+.. _SpecTypeRegisterBitsDefinition:
+
+Register Bits Definition
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+A value of this type shall be of one of the following variants:
-This set of attributes specifies a requirement reference. All explicit
+* The value may be a set of attributes. This set of attributes specifies a
+ register bit field. Single bits are bit fields with a width of one. All
+ explicit attributes shall be specified. The explicit attributes for this type
+ are:
+
+ brief
+ The attribute value shall be an :ref:`SpecTypeInterfaceBriefDescription`.
+
+ description
+ The attribute value shall be an :ref:`SpecTypeInterfaceDescription`.
+
+ name
+ The attribute value shall be a string. It shall be the name of the
+ register bit field.
+
+ properties
+ The attribute value shall be a list of strings. It shall be the list of
+ bit field properties. Properties are for example if the bit field can be
+ read or written, or an access has side-effects such as clearing a status.
+
+ start
+ The attribute value shall be an integer number. It shall be the start bit
+ of the bit field. Bit ``0`` is the least-significant bit.
+
+ width
+ The attribute value shall be an integer number. It shall be the width in
+ bits of the bit field.
+
+* There may be no value (null).
+
+This type is used by the following types:
+
+* :ref:`SpecTypeRegisterBitsDefinitionDirective`
+
+* :ref:`SpecTypeRegisterBitsDefinitionVariant`
+
+.. _SpecTypeRegisterBitsDefinitionDirective:
+
+Register Bits Definition Directive
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This set of attributes specifies a register bits directive. All explicit
attributes shall be specified. The explicit attributes for this type are:
-identifier
- The attribute value shall be a string. It shall be the type-specific
- identifier of the reference target. For *group* references use the Doxygen
- group identifier.
+default
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterBitsDefinition`. The default definition will be used
+ if no variant-specific definition is enabled.
-type
- The attribute value shall be a :ref:`SpecTypeRequirementReferenceType`.
+variants
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterBitsDefinitionVariant`.
This type is used by the following types:
-* :ref:`SpecTypeRequirementItemType`
+* :ref:`SpecTypeRegisterDefinition`
-.. _SpecTypeRequirementReferenceType:
+.. _SpecTypeRegisterBitsDefinitionVariant:
-Requirement Reference Type
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+Register Bits Definition Variant
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This set of attributes specifies a register bits variant. All explicit
+attributes shall be specified. The explicit attributes for this type are:
+
+definition
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterBitsDefinition`. The definition will be used if the
+ expression defined by the ``enabled-by`` attribute evaluates to true. In
+ generated header files, the expression is evaluated by the C preprocessor.
+
+enabled-by
+ The attribute value shall be an
+ :ref:`SpecTypeInterfaceEnabledByExpression`.
+
+This type is used by the following types:
+
+* :ref:`SpecTypeRegisterBitsDefinitionDirective`
+
+.. _SpecTypeRegisterBlockIncludeRole:
+
+Register Block Include Role
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This type refines the :ref:`SpecTypeLink` through the ``role`` attribute if the
+value is ``register-block-include``. It defines the register block include role
+of links. Links of this role are used to build register blocks using other
+register blocks. All explicit attributes shall be specified. The explicit
+attributes for this type are:
+
+name
+ The attribute value shall be a string. It shall be a name to identify the
+ included register block within the item. The name shall be unique within
+ the scope of the item links of this role and the
+ :ref:`SpecTypeRegisterList`.
+
+.. _SpecTypeRegisterBlockMemberDefinition:
-The value shall be a string. It specifies the type of a requirement reference.
-The value shall be an element of
+Register Block Member Definition
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-* "``define``",
+A value of this type shall be of one of the following variants:
-* "``file``",
+* The value may be a set of attributes. This set of attributes specifies a
+ register block member definition. All explicit attributes shall be specified.
+ The explicit attributes for this type are:
-* "``function``",
+ count
+ The attribute value shall be an integer number. It shall be the count of
+ registers of the register block member.
-* "``group``",
+ name
+ The attribute value shall be a :ref:`SpecTypeRegisterName`.
-* "``macro``", and
+* There may be no value (null).
+
+This type is used by the following types:
-* "``variable``".
+* :ref:`SpecTypeRegisterBlockMemberDefinitionDirective`
+
+* :ref:`SpecTypeRegisterBlockMemberDefinitionVariant`
+
+.. _SpecTypeRegisterBlockMemberDefinitionDirective:
+
+Register Block Member Definition Directive
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This set of attributes specifies a register block member definition directive.
+All explicit attributes shall be specified. The explicit attributes for this
+type are:
+
+default
+ The attribute value shall be a
+ :ref:`SpecTypeRegisterBlockMemberDefinition`. The default definition will
+ be used if no variant-specific definition is enabled.
+
+offset
+ The attribute value shall be an integer number. It shall be the address of
+ the register block member relative to the base address of the register
+ block.
+
+variants
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterBlockMemberDefinitionVariant`.
This type is used by the following types:
-* :ref:`SpecTypeRequirementReference`
+* :ref:`SpecTypeRegisterBlockItemType`
+
+.. _SpecTypeRegisterBlockMemberDefinitionVariant:
+
+Register Block Member Definition Variant
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This set of attributes specifies a register block member definition variant.
+All explicit attributes shall be specified. The explicit attributes for this
+type are:
+
+definition
+ The attribute value shall be a
+ :ref:`SpecTypeRegisterBlockMemberDefinition`. The definition will be used
+ if the expression defined by the ``enabled-by`` attribute evaluates to
+ true. In generated header files, the expression is evaluated by the C
+ preprocessor.
+
+enabled-by
+ The attribute value shall be an
+ :ref:`SpecTypeInterfaceEnabledByExpression`.
+
+This type is used by the following types:
+
+* :ref:`SpecTypeRegisterBlockMemberDefinitionDirective`
+
+.. _SpecTypeRegisterDefinition:
+
+Register Definition
+^^^^^^^^^^^^^^^^^^^
+
+This set of attributes specifies a register. All explicit attributes shall be
+specified. The explicit attributes for this type are:
+
+bits
+ The attribute value shall be a list. Each list element shall be a
+ :ref:`SpecTypeRegisterBitsDefinitionDirective`.
+
+brief
+ The attribute value shall be an :ref:`SpecTypeInterfaceBriefDescription`.
+
+description
+ The attribute value shall be an :ref:`SpecTypeInterfaceDescription`.
+
+name
+ The attribute value shall be a string. It shall be the name to identify the
+ register definition. The name shall be unique within the scope of the
+ :ref:`SpecTypeRegisterBlockIncludeRole` links of the item and the
+ :ref:`SpecTypeRegisterList`.
+
+width
+ The attribute value shall be an integer number. It shall be the width of
+ the register in bits.
+
+In addition to the explicit attributes, generic attributes may be specified.
+Each generic attribute key shall be a :ref:`SpecTypeName`. The attribute value
+may have any type.
+
+This type is used by the following types:
+
+* :ref:`SpecTypeRegisterBlockItemType`
+
+.. _SpecTypeRegisterName:
+
+Register Name
+^^^^^^^^^^^^^
+
+The value shall be a string. The name consists either of an identifier, or an
+identifier and an alias. The identifier and alias are separated by a colon
+(``:``). The identifier shall match with the name of a register definition of
+the item (see :ref:`SpecTypeRegisterDefinition`) or the name of a register
+block include of the item (see :ref:`SpecTypeRegisterBlockIncludeRole`). If no
+alias is specified, then the identifier is used for the register block member
+name, otherwise the alias is used. If the register block member names are not
+unique within the item, then a postfix number is appended to the names. The
+number starts with zero for each set of names. The value shall match with the
+regular expression "``^[a-zA-Z_][a-zA-Z0-9_]*(:[a-zA-Z_][a-zA-Z0-9_]*)?$``".
+
+This type is used by the following types:
+
+* :ref:`SpecTypeRegisterBlockMemberDefinition`
+
+.. _SpecTypeRequirementDesignGroupIdentifier:
+
+Requirement Design Group Identifier
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A value of this type shall be of one of the following variants:
+
+* There may be no value (null).
+
+* The value may be a string. It shall be the identifier of the requirement
+ design group. The value shall match with the regular expression
+ "``^[a-zA-Z0-9_]*$``".
+
+This type is used by the following types:
+
+* :ref:`SpecTypeDesignGroupRequirementItemType`
.. _SpecTypeRequirementRefinementLinkRole:
@@ -4742,13 +5256,13 @@ Requirement Validation Link Role
This type refines the :ref:`SpecTypeLink` through the ``role`` attribute if the
value is ``validation``. It defines the requirement validation role of links.
-.. _SpecTypeRuntimeMeasurementEnvironment:
+.. _SpecTypeRuntimeMeasurementEnvironmentName:
-Runtime Measurement Environment
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Runtime Measurement Environment Name
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The value shall be a string. It specifies the runtime measurement environment.
-The value
+The value shall be a string. It specifies the runtime measurement environment
+name. The value
* shall be an element of
@@ -4771,12 +5285,12 @@ Runtime Measurement Environment Table
This set of attributes provides runtime performance limits for a set of runtime
measurement environments. Generic attributes may be specified. Each generic
-attribute key shall be a :ref:`SpecTypeRuntimeMeasurementEnvironment`. Each
+attribute key shall be a :ref:`SpecTypeRuntimeMeasurementEnvironmentName`. Each
generic attribute value shall be a :ref:`SpecTypeRuntimeMeasurementValueTable`.
This type is used by the following types:
-* :ref:`SpecTypeRuntimePerformanceLimitTable`
+* :ref:`SpecTypePerformanceRuntimeLimitsLinkRole`
.. _SpecTypeRuntimeMeasurementParameterSet:
@@ -4852,21 +5366,6 @@ This type is used by the following types:
* :ref:`SpecTypeRuntimeMeasurementEnvironmentTable`
-.. _SpecTypeRuntimePerformanceLimitTable:
-
-Runtime Performance Limit Table
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This set of attributes provides runtime performance limits for BSP variants
-specified by ``"<arch>/<bsp>"`` with <arch> being the architecture of the BSP
-and <bsp> being the base name of the BSP. Generic attributes may be specified.
-Each generic attribute key shall be a string. Each generic attribute value
-shall be a :ref:`SpecTypeRuntimeMeasurementEnvironmentTable`.
-
-This type is used by the following types:
-
-* :ref:`SpecTypeRuntimePerformanceRequirementItemType`
-
.. _SpecTypeRuntimePerformanceParameterSet:
Runtime Performance Parameter Set
@@ -4880,6 +5379,19 @@ This type is used by the following types:
* :ref:`SpecTypeRuntimePerformanceRequirementItemType`
+.. _SpecTypeSHA256HashValue:
+
+SHA256 Hash Value
+^^^^^^^^^^^^^^^^^
+
+The value shall be a string. It shall be a SHA256 hash value encoded in
+base64url. The value shall match with the regular expression
+"``^[A-Za-z0-9+_=-]{44}$``".
+
+This type is used by the following types:
+
+* :ref:`SpecTypeExternalFileReference`
+
.. _SpecTypeSPDXLicenseIdentifier:
SPDX License Identifier