summaryrefslogtreecommitdiffstats
path: root/spec/spec
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-05-25 09:42:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-05-28 10:38:23 +0200
commit06c7b22a67829732b0b14829416ecb32b58a9c3a (patch)
treed52c80cd42ba5b6da1a2a36560c144acd402af24 /spec/spec
parentspec: Add function body attribute (diff)
downloadrtems-central-06c7b22a67829732b0b14829416ecb32b58a9c3a.tar.bz2
spec: Add specification of interface items
Diffstat (limited to 'spec/spec')
-rw-r--r--spec/spec/interface-brief.yml17
-rw-r--r--spec/spec/interface-compound-definition-kind.yml25
-rw-r--r--spec/spec/interface-compound.yml45
-rw-r--r--spec/spec/interface-container.yml26
-rw-r--r--spec/spec/interface-define.yml38
-rw-r--r--spec/spec/interface-definition-directive.yml26
-rw-r--r--spec/spec/interface-definition-variant-list.yml16
-rw-r--r--spec/spec/interface-definition-variant.yml27
-rw-r--r--spec/spec/interface-definition.yml18
-rw-r--r--spec/spec/interface-description.yml17
-rw-r--r--spec/spec/interface-enabled-by-list.yml16
-rw-r--r--spec/spec/interface-enabled-by.yml45
-rw-r--r--spec/spec/interface-enum-definition-kind.yml22
-rw-r--r--spec/spec/interface-enum.yml38
-rw-r--r--spec/spec/interface-enumerator-role.yml22
-rw-r--r--spec/spec/interface-enumerator.yml38
-rw-r--r--spec/spec/interface-forward-declaration.yml27
-rw-r--r--spec/spec/interface-function-definition-directive.yml26
-rw-r--r--spec/spec/interface-function-definition-variant-list.yml16
-rw-r--r--spec/spec/interface-function-definition-variant.yml27
-rw-r--r--spec/spec/interface-function-definition.yml36
-rw-r--r--spec/spec/interface-function.yml44
-rw-r--r--spec/spec/interface-group.yml10
-rw-r--r--spec/spec/interface-header-file.yml36
-rw-r--r--spec/spec/interface-macro.yml44
-rw-r--r--spec/spec/interface-member-compound.yml29
-rw-r--r--spec/spec/interface-member-declaration.yml29
-rw-r--r--spec/spec/interface-member-definition-directive-list.yml16
-rw-r--r--spec/spec/interface-member-definition-directive.yml27
-rw-r--r--spec/spec/interface-member-definition-variant-list.yml16
-rw-r--r--spec/spec/interface-member-definition-variant.yml28
-rw-r--r--spec/spec/interface-member-definition.yml32
-rw-r--r--spec/spec/interface-notes.yml17
-rw-r--r--spec/spec/interface-param-dir.yml22
-rw-r--r--spec/spec/interface-param-list.yml16
-rw-r--r--spec/spec/interface-param.yml28
-rw-r--r--spec/spec/interface-return-directive.yml25
-rw-r--r--spec/spec/interface-return-value-list.yml16
-rw-r--r--spec/spec/interface-return-value.yml25
-rw-r--r--spec/spec/interface-typedef.yml38
-rw-r--r--spec/spec/interface-unspecified.yml26
-rw-r--r--spec/spec/interface-variable.yml38
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