[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