[rtems-central commit] spec: Add constraints

Sebastian Huber sebh at rtems.org
Wed Feb 3 05:28:01 UTC 2021


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Jan 20 14:03:47 2021 +0100

spec: Add constraints

---

 spec/constraint/clock-tick.yml                      | 12 ++++++++++++
 spec/constraint/directive-ctx-any.yml               | 10 ++++++++++
 spec/constraint/directive-ctx-const.yml             | 12 ++++++++++++
 spec/constraint/directive-ctx-devinit.yml           | 10 ++++++++++
 spec/constraint/directive-ctx-fatal.yml             | 10 ++++++++++
 spec/constraint/directive-ctx-isr-local.yml         | 11 +++++++++++
 spec/constraint/directive-ctx-isr.yml               | 10 ++++++++++
 spec/constraint/directive-ctx-task.yml              | 10 ++++++++++
 spec/constraint/directive-may-preempt.yml           | 11 +++++++++++
 spec/constraint/directive-no-preempt-local.yml      | 11 +++++++++++
 spec/constraint/directive-no-preempt.yml            | 10 ++++++++++
 spec/constraint/directive-remote.yml                | 12 ++++++++++++
 spec/constraint/obj-unlimited-alloc.yml             | 12 ++++++++++++
 spec/constraint/obj-unlimited-free.yml              | 11 +++++++++++
 spec/constraint/object-allocator.yml                | 11 +++++++++++
 spec/rtems/constraint/delete-by-any-task.yml        | 11 +++++++++++
 spec/rtems/constraint/directive-ctx-isr-no-wait.yml | 11 +++++++++++
 spec/rtems/constraint/mp-max-global-objects.yml     | 12 ++++++++++++
 18 files changed, 197 insertions(+)

diff --git a/spec/constraint/clock-tick.yml b/spec/constraint/clock-tick.yml
new file mode 100644
index 0000000..797bf7c
--- /dev/null
+++ b/spec/constraint/clock-tick.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The timeout functionality of the directive requires a clock tick.  Clock
+  ticks are provided by the clock driver, see
+  ${/acfg/if/appl-needs-clock-driver:/name} application configuration option.
+type: constraint
diff --git a/spec/constraint/directive-ctx-any.yml b/spec/constraint/directive-ctx-any.yml
new file mode 100644
index 0000000..d2026b6
--- /dev/null
+++ b/spec/constraint/directive-ctx-any.yml
@@ -0,0 +1,10 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be called from within any runtime context.
+type: constraint
diff --git a/spec/constraint/directive-ctx-const.yml b/spec/constraint/directive-ctx-const.yml
new file mode 100644
index 0000000..9866934
--- /dev/null
+++ b/spec/constraint/directive-ctx-const.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive is implemented by a macro and may be called from within C/C++
+  constant expressions.  In addition, a function implementation of the
+  directive exists for bindings to other programming languages.
+type: constraint
diff --git a/spec/constraint/directive-ctx-devinit.yml b/spec/constraint/directive-ctx-devinit.yml
new file mode 100644
index 0000000..1522864
--- /dev/null
+++ b/spec/constraint/directive-ctx-devinit.yml
@@ -0,0 +1,10 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be called from within device driver initialization context.
+type: constraint
diff --git a/spec/constraint/directive-ctx-fatal.yml b/spec/constraint/directive-ctx-fatal.yml
new file mode 100644
index 0000000..3e4a2a4
--- /dev/null
+++ b/spec/constraint/directive-ctx-fatal.yml
@@ -0,0 +1,10 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be called from within fatal context.
+type: constraint
diff --git a/spec/constraint/directive-ctx-isr-local.yml b/spec/constraint/directive-ctx-isr-local.yml
new file mode 100644
index 0000000..170b10b
--- /dev/null
+++ b/spec/constraint/directive-ctx-isr-local.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  When the directive operates on a local object, the directive may be called
+  from within interrupt context.
+type: constraint
diff --git a/spec/constraint/directive-ctx-isr.yml b/spec/constraint/directive-ctx-isr.yml
new file mode 100644
index 0000000..c1645eb
--- /dev/null
+++ b/spec/constraint/directive-ctx-isr.yml
@@ -0,0 +1,10 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be called from within interrupt context.
+type: constraint
diff --git a/spec/constraint/directive-ctx-task.yml b/spec/constraint/directive-ctx-task.yml
new file mode 100644
index 0000000..c2f8716
--- /dev/null
+++ b/spec/constraint/directive-ctx-task.yml
@@ -0,0 +1,10 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be called from within task context.
+type: constraint
diff --git a/spec/constraint/directive-may-preempt.yml b/spec/constraint/directive-may-preempt.yml
new file mode 100644
index 0000000..73f3209
--- /dev/null
+++ b/spec/constraint/directive-may-preempt.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be unblock other tasks.  One of the unblocked tasks may
+  preempt the calling task.
+type: constraint
diff --git a/spec/constraint/directive-no-preempt-local.yml b/spec/constraint/directive-no-preempt-local.yml
new file mode 100644
index 0000000..0a444da
--- /dev/null
+++ b/spec/constraint/directive-no-preempt-local.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  When the directive operates on a local object, the directive will not cause
+  the calling task to be preempted.
+type: constraint
diff --git a/spec/constraint/directive-no-preempt.yml b/spec/constraint/directive-no-preempt.yml
new file mode 100644
index 0000000..847913c
--- /dev/null
+++ b/spec/constraint/directive-no-preempt.yml
@@ -0,0 +1,10 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive will not cause the calling task to be preempted.
+type: constraint
diff --git a/spec/constraint/directive-remote.yml b/spec/constraint/directive-remote.yml
new file mode 100644
index 0000000..61f25ad
--- /dev/null
+++ b/spec/constraint/directive-remote.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  When the directive operates on a remote object, the directive sends a message
+  to the remote node and waits for a reply.  This will preempt the calling
+  task.
+type: constraint
diff --git a/spec/constraint/obj-unlimited-alloc.yml b/spec/constraint/obj-unlimited-alloc.yml
new file mode 100644
index 0000000..8e5ede3
--- /dev/null
+++ b/spec/constraint/obj-unlimited-alloc.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  Where the object class corresponding to the directive is configured to use
+  unlimited objects, the directive may allocate memory from the RTEMS
+  Workspace.
+type: constraint
diff --git a/spec/constraint/obj-unlimited-free.yml b/spec/constraint/obj-unlimited-free.yml
new file mode 100644
index 0000000..c65584e
--- /dev/null
+++ b/spec/constraint/obj-unlimited-free.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  Where the object class corresponding to the directive is configured to use
+  unlimited objects, the directive may free memory to the RTEMS Workspace.
+type: constraint
diff --git a/spec/constraint/object-allocator.yml b/spec/constraint/object-allocator.yml
new file mode 100644
index 0000000..297ef55
--- /dev/null
+++ b/spec/constraint/object-allocator.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may obtain and release the object allocator mutex.  This may
+  cause the calling task to be preempted.
+type: constraint
diff --git a/spec/rtems/constraint/delete-by-any-task.yml b/spec/rtems/constraint/delete-by-any-task.yml
new file mode 100644
index 0000000..2fa1bd1
--- /dev/null
+++ b/spec/rtems/constraint/delete-by-any-task.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The calling task does not have to be the task that created the object.  Any
+  local task that knows the object identifier can delete the object.
+type: constraint
diff --git a/spec/rtems/constraint/directive-ctx-isr-no-wait.yml b/spec/rtems/constraint/directive-ctx-isr-no-wait.yml
new file mode 100644
index 0000000..d34ad68
--- /dev/null
+++ b/spec/rtems/constraint/directive-ctx-isr-no-wait.yml
@@ -0,0 +1,11 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The directive may be called from within interrupt context if the
+  ${../option/if/no-wait:/name} option is set.
+type: constraint
diff --git a/spec/rtems/constraint/mp-max-global-objects.yml b/spec/rtems/constraint/mp-max-global-objects.yml
new file mode 100644
index 0000000..f2bf001
--- /dev/null
+++ b/spec/rtems/constraint/mp-max-global-objects.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links: []
+rationale: null
+scope: user
+text: |
+  The number of global objects available to the application is configured
+  through the ${/acfg/if/mp-max-global-objects:/name} application configuration
+  option.
+type: constraint



More information about the vc mailing list