diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-05-25 09:42:37 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-05-28 10:38:23 +0200 |
commit | 06c7b22a67829732b0b14829416ecb32b58a9c3a (patch) | |
tree | d52c80cd42ba5b6da1a2a36560c144acd402af24 /spec/spec | |
parent | spec: Add function body attribute (diff) | |
download | rtems-central-06c7b22a67829732b0b14829416ecb32b58a9c3a.tar.bz2 |
spec: Add specification of interface items
Diffstat (limited to 'spec/spec')
42 files changed, 1124 insertions, 6 deletions
diff --git a/spec/spec/interface-brief.yml b/spec/spec/interface-brief.yml new file mode 100644 index 00000000..c495bb7f --- /dev/null +++ b/spec/spec/interface-brief.yml @@ -0,0 +1,17 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + none: null + str: + description: | + It shall be the brief description of the interface. +spec-name: Interface Brief Description +spec-type: interface-brief +type: spec diff --git a/spec/spec/interface-compound-definition-kind.yml b/spec/spec/interface-compound-definition-kind.yml new file mode 100644 index 00000000..1a497f7d --- /dev/null +++ b/spec/spec/interface-compound-definition-kind.yml @@ -0,0 +1,25 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + str: + assert: + in: + - struct-only + - typedef-and-struct + - typedef-and-union + - typedef-only + - union-only + description: | + It specifies how the interface compound is defined. It may be a typedef + only, the struct or union only, or a typedef with a struct or union + definition. +spec-name: Interface Compound Definition Kind +spec-type: interface-compound-definition-kind +type: spec diff --git a/spec/spec/interface-compound.yml b/spec/spec/interface-compound.yml new file mode 100644 index 00000000..f277756a --- /dev/null +++ b/spec/spec/interface-compound.yml @@ -0,0 +1,45 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: struct + uid: interface +- role: spec-refinement + spec-key: interface-type + spec-value: union + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-member-definition-directive-list + definition-kind: + description: null + spec-type: interface-compound-definition-kind + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the compound (struct or union). + spec-type: str + notes: + description: null + spec-type: interface-notes + description: | + This set of attributes specifies a compound (struct or union). + required-attributes: all +spec-name: Interface Compound Item Type +spec-type: interface-compound +type: spec diff --git a/spec/spec/interface-container.yml b/spec/spec/interface-container.yml new file mode 100644 index 00000000..9a1ea2b9 --- /dev/null +++ b/spec/spec/interface-container.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: container + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + domain: + description: | + It shall be the interface domain name. + spec-type: str + description: | + This set of attributes specifies an interface container. + required-attributes: all +spec-name: Interface Container Item Type +spec-type: interface-container +type: spec diff --git a/spec/spec/interface-define.yml b/spec/spec/interface-define.yml new file mode 100644 index 00000000..a8aefc12 --- /dev/null +++ b/spec/spec/interface-define.yml @@ -0,0 +1,38 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: define + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-definition-directive + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the define. + spec-type: str + notes: + description: null + spec-type: interface-notes + description: | + This set of attributes specifies a define. + required-attributes: all +spec-name: Interface Define Item Type +spec-type: interface-define +type: spec diff --git a/spec/spec/interface-definition-directive.yml b/spec/spec/interface-definition-directive.yml new file mode 100644 index 00000000..7112bc52 --- /dev/null +++ b/spec/spec/interface-definition-directive.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + default: + description: | + The default definition will be used if no variant-specific definition + is enabled. + spec-type: interface-definition + variants: + description: null + spec-type: interface-definition-variant-list + description: | + This set of attributes specifies an interface definition directive. + required-attributes: all +spec-name: Interface Definition Directive +spec-type: interface-definition-directive +type: spec diff --git a/spec/spec/interface-definition-variant-list.yml b/spec/spec/interface-definition-variant-list.yml new file mode 100644 index 00000000..2db72cbf --- /dev/null +++ b/spec/spec/interface-definition-variant-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-definition-variant +spec-name: Interface Definition Variant List +spec-type: interface-definition-variant-list +type: spec diff --git a/spec/spec/interface-definition-variant.yml b/spec/spec/interface-definition-variant.yml new file mode 100644 index 00000000..56baf89f --- /dev/null +++ b/spec/spec/interface-definition-variant.yml @@ -0,0 +1,27 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + definition: + description: | + 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. + spec-type: interface-definition + enabled-by: + description: null + spec-type: interface-enabled-by + description: | + This set of attributes specifies an interface definition variant. + required-attributes: all +spec-name: Interface Definition Variant +spec-type: interface-definition-variant +type: spec diff --git a/spec/spec/interface-definition.yml b/spec/spec/interface-definition.yml new file mode 100644 index 00000000..61ac3e30 --- /dev/null +++ b/spec/spec/interface-definition.yml @@ -0,0 +1,18 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + none: null + str: + description: | + It shall be the definition. On the definition a context-sensitive + substitution of item variables is performed. +spec-name: Interface Definition +spec-type: interface-definition +type: spec diff --git a/spec/spec/interface-description.yml b/spec/spec/interface-description.yml new file mode 100644 index 00000000..c940b766 --- /dev/null +++ b/spec/spec/interface-description.yml @@ -0,0 +1,17 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + none: null + str: + description: | + It shall be the description of the interface. +spec-name: Interface Description +spec-type: interface-description +type: spec diff --git a/spec/spec/interface-enabled-by-list.yml b/spec/spec/interface-enabled-by-list.yml new file mode 100644 index 00000000..a94412ba --- /dev/null +++ b/spec/spec/interface-enabled-by-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-enabled-by +spec-name: Interface Enabled-By Expression List +spec-type: interface-enabled-by-list +type: spec diff --git a/spec/spec/interface-enabled-by.yml b/spec/spec/interface-enabled-by.yml new file mode 100644 index 00000000..8863269b --- /dev/null +++ b/spec/spec/interface-enabled-by.yml @@ -0,0 +1,45 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: | + A value of this type shall be an expression which defines under which + conditions an interface definition is enabled. In generated header files, + the expression is evaluated by the C preprocessor. +spec-example: null +spec-info: + bool: + description: | + It is converted to 0 or 1. It defines a symbol in the expression. + dict: + attributes: + and: + description: | + The *and* operator defines a *logical and* of the expressions in the + list. + spec-type: interface-enabled-by-list + not: + description: | + The *not* operator defines a *logical not* of the expression. + spec-type: interface-enabled-by + or: + description: | + The *or* operator defines a *logical or* of the expressions in the + list. + spec-type: interface-enabled-by-list + description: | + Each attribute defines an operator. + required-attributes: exactly-one + list: + description: | + It defines a *logical or* of the expressions in the list. + spec-type: interface-enabled-by + str: + description: | + It defines a symbol in the expression. +spec-name: Interface Enabled-By Expression +spec-type: interface-enabled-by +type: spec diff --git a/spec/spec/interface-enum-definition-kind.yml b/spec/spec/interface-enum-definition-kind.yml new file mode 100644 index 00000000..6e108c4e --- /dev/null +++ b/spec/spec/interface-enum-definition-kind.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + str: + assert: + in: + - enum-only + - typedef-and-enum + - typedef-only + description: | + It specifies how the enum is defined. It may be a typedef only, the enum + only, or a typedef with an enum definition. +spec-name: Interface Enum Definition Kind +spec-type: interface-enum-definition-kind +type: spec diff --git a/spec/spec/interface-enum.yml b/spec/spec/interface-enum.yml new file mode 100644 index 00000000..38430703 --- /dev/null +++ b/spec/spec/interface-enum.yml @@ -0,0 +1,38 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: enum + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition-kind: + description: null + spec-type: interface-enum-definition-kind + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the enum. + spec-type: str + notes: + description: null + spec-type: interface-description + description: | + This set of attributes specifies an enum. + required-attributes: all +spec-name: Interface Enum Item Type +spec-type: interface-enum +type: spec diff --git a/spec/spec/interface-enumerator-role.yml b/spec/spec/interface-enumerator-role.yml new file mode 100644 index 00000000..7fab2799 --- /dev/null +++ b/spec/spec/interface-enumerator-role.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: role + spec-value: interface-enumerator + uid: link +spec-description: null +spec-example: null +spec-info: + dict: + attributes: {} + description: | + It defines the interface enumerator role of links. + required-attributes: all +spec-name: Interface Enumerator Link Role +spec-type: interface-enumerator-role +type: spec diff --git a/spec/spec/interface-enumerator.yml b/spec/spec/interface-enumerator.yml new file mode 100644 index 00000000..1743ed55 --- /dev/null +++ b/spec/spec/interface-enumerator.yml @@ -0,0 +1,38 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: enumerator + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-definition-directive + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the enumerator. + spec-type: str + notes: + description: null + spec-type: interface-notes + description: | + This set of attributes specifies an enumerator. + required-attributes: all +spec-name: Interface Enumerator Item Type +spec-type: interface-enumerator +type: spec diff --git a/spec/spec/interface-forward-declaration.yml b/spec/spec/interface-forward-declaration.yml new file mode 100644 index 00000000..ae8302ea --- /dev/null +++ b/spec/spec/interface-forward-declaration.yml @@ -0,0 +1,27 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: forward-declaration + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + interface-target: + description: | + It shall be the UID of the interface target which defines forward + declaration. + spec-type: uid + description: | + This set of attributes specifies a forward declaration. + required-attributes: all +spec-name: Interface Forward Declaration Item Type +spec-type: interface-forward-declaration +type: spec diff --git a/spec/spec/interface-function-definition-directive.yml b/spec/spec/interface-function-definition-directive.yml new file mode 100644 index 00000000..d7258990 --- /dev/null +++ b/spec/spec/interface-function-definition-directive.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + default: + description: | + The default definition will be used if no variant-specific definition + is enabled. + spec-type: interface-function-definition + variants: + description: null + spec-type: interface-function-definition-variant-list + description: | + This set of attributes specifies a function definition directive. + required-attributes: all +spec-name: Interface Function Definition Directive +spec-type: interface-function-definition-directive +type: spec diff --git a/spec/spec/interface-function-definition-variant-list.yml b/spec/spec/interface-function-definition-variant-list.yml new file mode 100644 index 00000000..dd3bba18 --- /dev/null +++ b/spec/spec/interface-function-definition-variant-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-function-definition-variant +spec-name: Interface Function Definition Variant List +spec-type: interface-function-definition-variant-list +type: spec diff --git a/spec/spec/interface-function-definition-variant.yml b/spec/spec/interface-function-definition-variant.yml new file mode 100644 index 00000000..ab9fdaca --- /dev/null +++ b/spec/spec/interface-function-definition-variant.yml @@ -0,0 +1,27 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + definition: + description: | + 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. + spec-type: interface-function-definition + enabled-by: + description: null + spec-type: interface-enabled-by + description: | + This set of attributes specifies a function definition variant. + required-attributes: all +spec-name: Interface Function Definition Variant +spec-type: interface-function-definition-variant +type: spec diff --git a/spec/spec/interface-function-definition.yml b/spec/spec/interface-function-definition.yml new file mode 100644 index 00000000..1d05127d --- /dev/null +++ b/spec/spec/interface-function-definition.yml @@ -0,0 +1,36 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + body: + description: | + If the value is present, then it shall be the definition of a static + inline function. On the function definition a context-sensitive + substitution of item variables is performed. If no value is present, + then the function is declared as an external function. + spec-type: optional-str + params: + description: | + It shall be the list of parameter declarations of the function. On + the function parameter declarations a context-sensitive substitution + of item variables is performed. + spec-type: list-str + return: + description: | + It shall be the function return type. On the return type a + context-sensitive substitution of item variables is performed. + spec-type: str + description: | + This set of attributes specifies a function definition. + required-attributes: all +spec-name: Interface Function Definition +spec-type: interface-function-definition +type: spec diff --git a/spec/spec/interface-function.yml b/spec/spec/interface-function.yml new file mode 100644 index 00000000..21e7e846 --- /dev/null +++ b/spec/spec/interface-function.yml @@ -0,0 +1,44 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: function + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-function-definition-directive + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the function. + spec-type: str + notes: + description: null + spec-type: interface-notes + params: + description: null + spec-type: interface-param-list + return: + description: null + spec-type: interface-return-directive + description: | + This set of attributes specifies a function. + required-attributes: all +spec-name: Interface Function Item Type +spec-type: interface-function +type: spec diff --git a/spec/spec/interface-group.yml b/spec/spec/interface-group.yml index 5a899c30..ee6c3c2c 100644 --- a/spec/spec/interface-group.yml +++ b/spec/spec/interface-group.yml @@ -15,13 +15,11 @@ spec-info: dict: attributes: brief: - description: | - It shall be the brief description of the interface group. - spec-type: optional-str + description: null + spec-type: interface-brief description: - description: | - It shall be the description of the interface group. - spec-type: optional-str + description: null + spec-type: interface-description identifier: description: null spec-type: interface-group-identifier diff --git a/spec/spec/interface-header-file.yml b/spec/spec/interface-header-file.yml new file mode 100644 index 00000000..4accb1c0 --- /dev/null +++ b/spec/spec/interface-header-file.yml @@ -0,0 +1,36 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: header-file + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + domain: + description: | + It shall be the interface domain name. + spec-type: str + path: + description: | + It shall be the path used to include the header file. For example + :file:`rtems/confdefs.h`. + spec-type: str + prefix: + description: | + It shall be the prefix directory path to the header file in the + interface domain. For example :file:`cpukit/include`. + spec-type: str + description: | + This set of attributes specifies a header file. + required-attributes: all +spec-name: Interface Header File Item Type +spec-type: interface-header-file +type: spec diff --git a/spec/spec/interface-macro.yml b/spec/spec/interface-macro.yml new file mode 100644 index 00000000..d67624a2 --- /dev/null +++ b/spec/spec/interface-macro.yml @@ -0,0 +1,44 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: macro + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-definition-directive + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the macro. + spec-type: str + notes: + description: null + spec-type: interface-notes + params: + description: null + spec-type: interface-param-list + return: + description: null + spec-type: interface-return-directive + description: | + This set of attributes specifies a macro. + required-attributes: all +spec-name: Interface Macro Item Type +spec-type: interface-macro +type: spec diff --git a/spec/spec/interface-member-compound.yml b/spec/spec/interface-member-compound.yml new file mode 100644 index 00000000..1322f22d --- /dev/null +++ b/spec/spec/interface-member-compound.yml @@ -0,0 +1,29 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: kind + spec-value: struct + uid: interface-member-definition +- role: spec-refinement + spec-key: kind + spec-value: union + uid: interface-member-definition +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + definition: + description: null + spec-type: interface-member-definition-directive-list + description: | + This set of attributes specifies an interface compound member compound. + required-attributes: all +spec-name: Interface Compound Member Compound +spec-type: interface-member-compound +type: spec diff --git a/spec/spec/interface-member-declaration.yml b/spec/spec/interface-member-declaration.yml new file mode 100644 index 00000000..763e5f08 --- /dev/null +++ b/spec/spec/interface-member-declaration.yml @@ -0,0 +1,29 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: kind + spec-value: member + uid: interface-member-definition +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + definition: + description: | + It shall be the interface compound member declaration. On the + declaration a context-sensitive substitution of item variables is + performed. + spec-type: str + description: | + This set of attributes specifies an interface compound member + declaration. + required-attributes: all +spec-name: Interface Compound Member Declaration +spec-type: interface-member-declaration +type: spec diff --git a/spec/spec/interface-member-definition-directive-list.yml b/spec/spec/interface-member-definition-directive-list.yml new file mode 100644 index 00000000..a1f19c5d --- /dev/null +++ b/spec/spec/interface-member-definition-directive-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-member-definition-directive +spec-name: Interface Compound Member Definition Directive List +spec-type: interface-member-definition-directive-list +type: spec diff --git a/spec/spec/interface-member-definition-directive.yml b/spec/spec/interface-member-definition-directive.yml new file mode 100644 index 00000000..8193d0ee --- /dev/null +++ b/spec/spec/interface-member-definition-directive.yml @@ -0,0 +1,27 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + default: + description: | + The default definition will be used if no variant-specific definition + is enabled. + spec-type: interface-member-definition + variants: + description: null + spec-type: interface-member-definition-variant-list + description: | + This set of attributes specifies an interface compound member definition + directive. + required-attributes: all +spec-name: Interface Compound Member Definition Directive +spec-type: interface-member-definition-directive +type: spec diff --git a/spec/spec/interface-member-definition-variant-list.yml b/spec/spec/interface-member-definition-variant-list.yml new file mode 100644 index 00000000..8de11672 --- /dev/null +++ b/spec/spec/interface-member-definition-variant-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-member-definition-variant +spec-name: Interface Compound Member Definition Variant List +spec-type: interface-member-definition-variant-list +type: spec diff --git a/spec/spec/interface-member-definition-variant.yml b/spec/spec/interface-member-definition-variant.yml new file mode 100644 index 00000000..4f215656 --- /dev/null +++ b/spec/spec/interface-member-definition-variant.yml @@ -0,0 +1,28 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + definition: + description: | + 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. + spec-type: interface-member-definition + enabled-by: + description: null + spec-type: interface-enabled-by + description: | + This set of attributes specifies an interface compound member definition + variant. + required-attributes: all +spec-name: Interface Compound Member Definition Variant +spec-type: interface-member-definition-variant +type: spec diff --git a/spec/spec/interface-member-definition.yml b/spec/spec/interface-member-definition.yml new file mode 100644 index 00000000..5833cec0 --- /dev/null +++ b/spec/spec/interface-member-definition.yml @@ -0,0 +1,32 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + description: + description: null + spec-type: interface-description + kind: + description: | + It shall be the interface compound member kind. + spec-type: str + name: + description: | + It shall be the interface compound member name. + spec-type: str + description: | + This set of attributes specifies an interface compound member definition. + required-attributes: all +spec-name: Interface Compound Member Definition +spec-type: interface-member-definition +type: spec diff --git a/spec/spec/interface-notes.yml b/spec/spec/interface-notes.yml new file mode 100644 index 00000000..b037b5b6 --- /dev/null +++ b/spec/spec/interface-notes.yml @@ -0,0 +1,17 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + none: null + str: + description: | + It shall be the notes for the interface. +spec-name: Interface Notes +spec-type: interface-notes +type: spec diff --git a/spec/spec/interface-param-dir.yml b/spec/spec/interface-param-dir.yml new file mode 100644 index 00000000..98848e13 --- /dev/null +++ b/spec/spec/interface-param-dir.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + none: null + str: + assert: + in: + - in + - out + - inout + description: | + It specifies the interface parameter direction. +spec-name: Interface Parameter Direction +spec-type: interface-param-dir +type: spec diff --git a/spec/spec/interface-param-list.yml b/spec/spec/interface-param-list.yml new file mode 100644 index 00000000..7cdd92bb --- /dev/null +++ b/spec/spec/interface-param-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-param +spec-name: Interface Parameter List +spec-type: interface-param-list +type: spec diff --git a/spec/spec/interface-param.yml b/spec/spec/interface-param.yml new file mode 100644 index 00000000..f0fada59 --- /dev/null +++ b/spec/spec/interface-param.yml @@ -0,0 +1,28 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + description: + description: null + spec-type: interface-description + dir: + description: null + spec-type: interface-param-dir + name: + description: | + It shall be the interface parameter name. + spec-type: str + description: | + This set of attributes specifies an interface parameter. + required-attributes: all +spec-name: Interface Parameter +spec-type: interface-param +type: spec diff --git a/spec/spec/interface-return-directive.yml b/spec/spec/interface-return-directive.yml new file mode 100644 index 00000000..66182f6a --- /dev/null +++ b/spec/spec/interface-return-directive.yml @@ -0,0 +1,25 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + return: + description: | + It shall describe the interface return for unspecified return values. + spec-type: optional-str + return-values: + description: null + spec-type: interface-return-value-list + description: | + This set of attributes specifies an interface return. + required-attributes: all +spec-name: Interface Return Directive +spec-type: interface-return-directive +type: spec diff --git a/spec/spec/interface-return-value-list.yml b/spec/spec/interface-return-value-list.yml new file mode 100644 index 00000000..cd963886 --- /dev/null +++ b/spec/spec/interface-return-value-list.yml @@ -0,0 +1,16 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + list: + description: null + spec-type: interface-return-value +spec-name: Interface Return Value List +spec-type: interface-return-value-list +type: spec diff --git a/spec/spec/interface-return-value.yml b/spec/spec/interface-return-value.yml new file mode 100644 index 00000000..800917b3 --- /dev/null +++ b/spec/spec/interface-return-value.yml @@ -0,0 +1,25 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + description: + description: null + spec-type: interface-description + value: + description: | + It shall be the described interface return value. + spec-type: bool-or-int-or-str + description: | + This set of attributes specifies an interface return value. + required-attributes: all +spec-name: Interface Return Value +spec-type: interface-return-value +type: spec diff --git a/spec/spec/interface-typedef.yml b/spec/spec/interface-typedef.yml new file mode 100644 index 00000000..28218330 --- /dev/null +++ b/spec/spec/interface-typedef.yml @@ -0,0 +1,38 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: typedef + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-definition-directive + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the typedef. + spec-type: str + notes: + description: null + spec-type: interface-notes + description: | + This set of attributes specifies a typedef. + required-attributes: all +spec-name: Interface Typedef Item Type +spec-type: interface-typedef +type: spec diff --git a/spec/spec/interface-unspecified.yml b/spec/spec/interface-unspecified.yml new file mode 100644 index 00000000..7d82ab54 --- /dev/null +++ b/spec/spec/interface-unspecified.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: unspecified + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + name: + description: | + It shall be the name of the unspecified interface. + spec-type: str + description: | + This set of attributes specifies an unspecified interface. + required-attributes: all +spec-name: Interface Unspecified Item Type +spec-type: interface-unspecified +type: spec diff --git a/spec/spec/interface-variable.yml b/spec/spec/interface-variable.yml new file mode 100644 index 00000000..b727327f --- /dev/null +++ b/spec/spec/interface-variable.yml @@ -0,0 +1,38 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: spec-member + uid: root +- role: spec-refinement + spec-key: interface-type + spec-value: variable + uid: interface +spec-description: null +spec-example: null +spec-info: + dict: + attributes: + brief: + description: null + spec-type: interface-brief + definition: + description: null + spec-type: interface-definition-directive + description: + description: null + spec-type: interface-description + name: + description: | + It shall be the name of the variable. + spec-type: str + notes: + description: null + spec-type: interface-notes + description: | + This set of attributes specifies a variable. + required-attributes: all +spec-name: Interface Variable Item Type +spec-type: interface-variable +type: spec |