diff options
Diffstat (limited to 'eng/req/items.rst')
-rw-r--r-- | eng/req/items.rst | 770 |
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 |