summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Kühndel <frank.kuehndel@embedded-brains.de>2021-05-03 11:54:58 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-05-17 06:45:11 +0200
commit8fa066874456be43fd758a35377ca0ce71cf83ca (patch)
tree4a85806d8eb6045c7b440fcdb4bfe95efb3760a9
parentspec: Add spec item for rtems_timer_cancel() (diff)
downloadrtems-central-8fa066874456be43fd758a35377ca0ce71cf83ca.tar.bz2
spec: Glossary terms for timer manager
spec/rtems/timer/glossary/*.yml Here are the timer specific glossary terms. As requested, the manager specific terms are put into an own folder alongside the other specification files of the manager. spec/glossary-requirements.yml The glossary terms for specifications are in an own group *glossary-requirements* to keep them separate from the existing glossary terms (*glossary-general*).
-rw-r--r--spec/glossary-requirements.yml12
-rw-r--r--spec/rtems/timer/glossary/clock.yml20
-rw-r--r--spec/rtems/timer/glossary/context.yml18
-rw-r--r--spec/rtems/timer/glossary/fire.yml17
-rw-r--r--spec/rtems/timer/glossary/inactive.yml20
-rw-r--r--spec/rtems/timer/glossary/interruptcontext.yml20
-rw-r--r--spec/rtems/timer/glossary/none.yml15
-rw-r--r--spec/rtems/timer/glossary/nop.yml14
-rw-r--r--spec/rtems/timer/glossary/pending.yml24
-rw-r--r--spec/rtems/timer/glossary/realtimeclock.yml21
-rw-r--r--spec/rtems/timer/glossary/scheduled.yml49
-rw-r--r--spec/rtems/timer/glossary/servercontext.yml12
-rw-r--r--spec/rtems/timer/glossary/state.yml16
-rw-r--r--spec/rtems/timer/glossary/ticksbasedclock.yml12
-rw-r--r--spec/rtems/timer/glossary/timerserviceroutine.yml12
15 files changed, 282 insertions, 0 deletions
diff --git a/spec/glossary-requirements.yml b/spec/glossary-requirements.yml
new file mode 100644
index 00000000..a8d35f70
--- /dev/null
+++ b/spec/glossary-requirements.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: group
+links:
+- role: requirement-refinement
+ uid: /req/root
+name: Requirements
+text: |
+ The system shall have a glossary for terms used in requirements and specification.
+type: glossary
diff --git a/spec/rtems/timer/glossary/clock.yml b/spec/rtems/timer/glossary/clock.yml
new file mode 100644
index 00000000..9d194cb8
--- /dev/null
+++ b/spec/rtems/timer/glossary/clock.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: clock
+text: |
+ The timer clock denotes the clock used to determine when the timer will
+ ${../glossary/fire:/term}. An interval timer uses the
+ ${/glossary/clock-tick:/term} based clock while a time-of-day timer uses the
+ ${/glossary/clock-realtime:/term}. A timer can be associated with one of
+ these clocks:
+
+ * ${../glossary/none:/term}
+ * ${../glossary/ticksbasedclock:/term}
+ * ${../glossary/realtimeclock:/term}
+type: glossary
diff --git a/spec/rtems/timer/glossary/context.yml b/spec/rtems/timer/glossary/context.yml
new file mode 100644
index 00000000..31b30805
--- /dev/null
+++ b/spec/rtems/timer/glossary/context.yml
@@ -0,0 +1,18 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: context
+text: |
+ The timer context denotes whether the ${../glossary/timerserviceroutine:/term}
+ is executed as part of an interrupt handler or from the task of the Timer
+ Server. A timer can be in one of these three contexts:
+
+ * ${../glossary/none:/term}
+ * ${../glossary/interruptcontext:/term}
+ * ${../glossary/servercontext:/term}
+type: glossary
diff --git a/spec/rtems/timer/glossary/fire.yml b/spec/rtems/timer/glossary/fire.yml
new file mode 100644
index 00000000..f0d34f74
--- /dev/null
+++ b/spec/rtems/timer/glossary/fire.yml
@@ -0,0 +1,17 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: fire
+text: |
+ A timer fires when ${/glossary/rtems:/term} in an ${/glossary/interrupt:/term}
+ detects that the ${../glossary/scheduled:/term} point in time has arrived to
+ invoke the ${../glossary/timerserviceroutine:/term} of the timer. Timer in
+ ${../glossary/servercontext:/term} may not immediately execute the
+ ${../glossary/timerserviceroutine:/term} due to ${../glossary/state:/term}
+ ${../glossary/pending:/term}.
+type: glossary
diff --git a/spec/rtems/timer/glossary/inactive.yml b/spec/rtems/timer/glossary/inactive.yml
new file mode 100644
index 00000000..1976578d
--- /dev/null
+++ b/spec/rtems/timer/glossary/inactive.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: inactive
+text: |
+ A timer in inactive ${../glossary/state:/term} will not
+ ${../glossary/fire:/term} nor invoke its
+ ${../glossary/timerserviceroutine:/term}. To change the
+ ${../glossary/state:/term} the timer must be ${../glossary/scheduled:/term}. A
+ timer enters inactive ${../glossary/state:/term} after
+
+ * being created by a call to ${../if/create:/name}
+ * being canceled by a call to ${../if/cancel:/name}
+ * the ${../glossary/timerserviceroutine:/term} was invoked (the execution may still be ongoing).
+type: glossary
diff --git a/spec/rtems/timer/glossary/interruptcontext.yml b/spec/rtems/timer/glossary/interruptcontext.yml
new file mode 100644
index 00000000..84d44afb
--- /dev/null
+++ b/spec/rtems/timer/glossary/interruptcontext.yml
@@ -0,0 +1,20 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: interrupt context
+text: |
+ The ${../glossary/timerserviceroutine:/term} is or will be executed as part of
+ an ${/glossary/interruptserviceroutine:/term}. A timer enters
+ ${/glossary/interrupt:/term} ${../glossary/context:/term} when the timer is
+ ${../glossary/scheduled:/term} using the directives ${../if/fire-after:/name}
+ or ${../if/fire-when:/name}. A timer leaves ${/glossary/interrupt:/term}
+ ${../glossary/context:/term} when the timer is ${../glossary/scheduled:/term}
+ using the directives ${../if/server-fire-after:/name} or
+ ${../if/server-fire-when:/name} or when the timer is deleted. Canceling or
+ resetting a timer does not change the ${../glossary/context:/term}.
+type: glossary
diff --git a/spec/rtems/timer/glossary/none.yml b/spec/rtems/timer/glossary/none.yml
new file mode 100644
index 00000000..be81c69f
--- /dev/null
+++ b/spec/rtems/timer/glossary/none.yml
@@ -0,0 +1,15 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: none
+text: |
+ A timer in ${../glossary/state:/term} or ${../glossary/context:/term} none or
+ associated with ${../glossary/clock:/term} none has not been
+ ${../glossary/scheduled:/term} since it was created with
+ ${../if/create:/name}. The timer is "new" and yet unused.
+type: glossary
diff --git a/spec/rtems/timer/glossary/nop.yml b/spec/rtems/timer/glossary/nop.yml
new file mode 100644
index 00000000..362f966b
--- /dev/null
+++ b/spec/rtems/timer/glossary/nop.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: Nop
+text: |
+ Nop means *no operation*. This term is used when directives do not return
+ ${../../status/if/successful:/name} as result. Nop indicates that the call of
+ a directive has no observable effect on any ${/glossary/rtems:/term} state.
+type: glossary
diff --git a/spec/rtems/timer/glossary/pending.yml b/spec/rtems/timer/glossary/pending.yml
new file mode 100644
index 00000000..3bb93efc
--- /dev/null
+++ b/spec/rtems/timer/glossary/pending.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: pending
+text: |
+ The timers in ${../glossary/servercontext:/term} have a third
+ ${../glossary/state:/term} "pending". A Timer enters
+ ${../glossary/state:/term} pending when the time at which it is
+ ${../glossary/scheduled:/term} to ${../glossary/fire:/term} as been reached
+ but the ${../glossary/timerserviceroutine:/term} has not been invoked yet (for
+ example because other tasks with higher priority are active).
+
+ The pending ${../glossary/state:/term} can be left when
+
+ * the ${../glossary/timerserviceroutine:/term} is eventually invoked
+ * the timer is canceled by a call to ${../if/cancel:/name}
+ * the timer is reset by a call to ${../if/reset:/name}
+ * the timer is deleted by a call to ${../if/delete:/name}
+type: glossary
diff --git a/spec/rtems/timer/glossary/realtimeclock.yml b/spec/rtems/timer/glossary/realtimeclock.yml
new file mode 100644
index 00000000..72c6a32d
--- /dev/null
+++ b/spec/rtems/timer/glossary/realtimeclock.yml
@@ -0,0 +1,21 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: realtime clock
+text: |
+ The timer uses ${/glossary/clock-realtime:/term} to determine the point in
+ time to ${../glossary/fire:/term}. A timer is associated with
+ ${/glossary/clock-realtime:/term} when the timer is
+ ${../glossary/scheduled:/term} using the directives ${../if/fire-when:/name}
+ or ${../if/server-fire-when:/name}. A timer is not longer associated with
+ ${/glossary/clock-realtime:/term} when the timer is
+ ${../glossary/scheduled:/term} using the directives ${../if/fire-after:/name}
+ or ${../if/server-fire-after:/name} or when the timer is deleted. Canceling or
+ resetting a timer does not change the association with a particular
+ ${../glossary/clock:/term}.
+type: glossary
diff --git a/spec/rtems/timer/glossary/scheduled.yml b/spec/rtems/timer/glossary/scheduled.yml
new file mode 100644
index 00000000..dfcaacc1
--- /dev/null
+++ b/spec/rtems/timer/glossary/scheduled.yml
@@ -0,0 +1,49 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: scheduled
+text: |
+ A timer in scheduled ${../glossary/state:/term} is set to
+ ${../glossary/fire:/term} at a defined point in the future. A timer enters
+ scheduled ${../glossary/state:/term} when the user calls one of the directives
+ listed below or ${../if/reset:/name} and these directives return
+ ${/glossary/statuscode:/term} ${../../status/if/successful:/name}.
+
+ All directives called on a timer are executed in strict sequential order. The
+ timer remembers the data from the last call (if any) to one of the four
+ directives listed below till another call to one of these directives
+ overwrites the remembered data or the timer is deleted. This stored data is
+ used when the ${../if/reset:/name} directive is called.
+
+ The table below lists the directives which schedule a single invocation of a
+ ${../glossary/timerserviceroutine:/term}. The table states the
+ ${../glossary/context:/term} in which the
+ ${../glossary/timerserviceroutine:/term} will be invoked and the
+ ${../glossary/clock:/term} which ${/glossary/rtems:/term} uses to determine
+ when to ${../glossary/fire:/term} the execution.
+
+ .. list-table:: Timer scheduling directives set ${../glossary/clock:/term} and ${../glossary/context:/term}
+ :widths: 20 10 10
+ :header-rows: 1
+
+ * - Directive
+ - Execution ${../glossary/context:/term}
+ - ${../glossary/clock:/term} used
+ * - ${../if/fire-after:/name}
+ - ${../glossary/interruptcontext:/term}
+ - ${../glossary/ticksbasedclock:/term}
+ * - ${../if/fire-when:/name}
+ - ${../glossary/interruptcontext:/term}
+ - ${../glossary/realtimeclock:/term}
+ * - ${../if/server-fire-after:/name}
+ - ${../glossary/servercontext:/term}
+ - ${../glossary/ticksbasedclock:/term}
+ * - ${../if/server-fire-when:/name}
+ - ${../glossary/servercontext:/term}
+ - ${../glossary/realtimeclock:/term}
+type: glossary
diff --git a/spec/rtems/timer/glossary/servercontext.yml b/spec/rtems/timer/glossary/servercontext.yml
new file mode 100644
index 00000000..2e442bf7
--- /dev/null
+++ b/spec/rtems/timer/glossary/servercontext.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: server context
+text: |
+ The ${../glossary/timerserviceroutine:/term} is or will be executed by the ${/glossary/task:/term} of the timer server. A timer enters server ${../glossary/context:/term} when the timer is ${../glossary/scheduled:/term} using the directives ${../if/server-fire-after:/name} or ${../if/server-fire-when:/name}. A timer leaves server ${../glossary/context:/term} when the timer is ${../glossary/scheduled:/term} using the directives ${../if/fire-after:/name} or ${../if/fire-when:/name} or when the timer is deleted. Canceling or resetting a timer does not change the ${../glossary/context:/term}.
+type: glossary
diff --git a/spec/rtems/timer/glossary/state.yml b/spec/rtems/timer/glossary/state.yml
new file mode 100644
index 00000000..10c10606
--- /dev/null
+++ b/spec/rtems/timer/glossary/state.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: state
+text: |
+ The state of a timer denotes whether the timer is set to ${../glossary/fire:/term} or not. There is also a third state for the timer has fired but the ${../glossary/timerserviceroutine:/term} has not been invoked yet. A timer can be in one of these states:
+
+ * ${../glossary/inactive:/term}
+ * ${../glossary/scheduled:/term}
+ * ${../glossary/pending:/term}
+type: glossary
diff --git a/spec/rtems/timer/glossary/ticksbasedclock.yml b/spec/rtems/timer/glossary/ticksbasedclock.yml
new file mode 100644
index 00000000..bd8f0628
--- /dev/null
+++ b/spec/rtems/timer/glossary/ticksbasedclock.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: ticks based clock
+text: |
+ The timer uses the ${/glossary/tick:/term} based ${../glossary/clock:/term} to determine the point in time to ${../glossary/fire:/term}. A timer is associated with ${/glossary/tick:/term} based ${../glossary/clock:/term} when the timer is ${../glossary/scheduled:/term} using the directives ${../if/fire-after:/name} or ${../if/server-fire-after:/name}. A timer is not longer associated with the ${/glossary/tick:/term} based ${../glossary/clock:/term} when the timer is ${../glossary/scheduled:/term} using the directives ${../if/fire-when:/name} or ${../if/server-fire-when:/name} or when the timer is deleted. Canceling or resetting a timer does not change the association with a particular ${../glossary/clock:/term}.
+type: glossary
diff --git a/spec/rtems/timer/glossary/timerserviceroutine.yml b/spec/rtems/timer/glossary/timerserviceroutine.yml
new file mode 100644
index 00000000..8e6bd0c2
--- /dev/null
+++ b/spec/rtems/timer/glossary/timerserviceroutine.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+glossary-type: term
+links:
+- role: glossary-member
+ uid: /glossary-requirements
+term: Timer Service Routine
+text: |
+ The timer service routine is a user defined function executed when or after the timer fires (see ${../glossary/fire:/term}). The user must provide a reference to the timer service routine when scheduling a timer. See also ${../glossary/scheduled:/term}.
+type: glossary