diff options
Diffstat (limited to 'spec/rtems/ratemon')
23 files changed, 702 insertions, 0 deletions
diff --git a/spec/rtems/ratemon/if/active.yml b/spec/rtems/ratemon/if/active.yml new file mode 100644 index 00000000..845a0954 --- /dev/null +++ b/spec/rtems/ratemon/if/active.yml @@ -0,0 +1,15 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: null + variants: [] +description: null +enabled-by: true +interface-type: enumerator +links: [] +name: RATE_MONOTONIC_ACTIVE +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/cancel.yml b/spec/rtems/ratemon/if/cancel.yml new file mode 100644 index 00000000..10dd35fa --- /dev/null +++ b/spec/rtems/ratemon/if/cancel.yml @@ -0,0 +1,30 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/id:/name} ${.:/params[0]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_cancel +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/create.yml b/spec/rtems/ratemon/if/create.yml new file mode 100644 index 00000000..b883e19a --- /dev/null +++ b/spec/rtems/ratemon/if/create.yml @@ -0,0 +1,34 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/name:/name} ${.:/params[0]/name} + - ${../../type/if/id:/name} *${.:/params[1]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_create +notes: null +params: +- description: '%' + dir: null + name: name +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/delete.yml b/spec/rtems/ratemon/if/delete.yml new file mode 100644 index 00000000..4b648e14 --- /dev/null +++ b/spec/rtems/ratemon/if/delete.yml @@ -0,0 +1,30 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/id:/name} ${.:/params[0]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_delete +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/expired.yml b/spec/rtems/ratemon/if/expired.yml new file mode 100644 index 00000000..4f3c5dfb --- /dev/null +++ b/spec/rtems/ratemon/if/expired.yml @@ -0,0 +1,15 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: null + variants: [] +description: null +enabled-by: true +interface-type: enumerator +links: [] +name: RATE_MONOTONIC_EXPIRED +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/get-statistics.yml b/spec/rtems/ratemon/if/get-statistics.yml new file mode 100644 index 00000000..95f70393 --- /dev/null +++ b/spec/rtems/ratemon/if/get-statistics.yml @@ -0,0 +1,34 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/id:/name} ${.:/params[0]/name} + - ${period-statistics:/name} *${.:/params[1]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_get_statistics +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: statistics +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/get-status.yml b/spec/rtems/ratemon/if/get-status.yml new file mode 100644 index 00000000..2f2ddb34 --- /dev/null +++ b/spec/rtems/ratemon/if/get-status.yml @@ -0,0 +1,34 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/id:/name} ${.:/params[0]/name} + - ${period-status:/name} *${.:/params[1]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_get_status +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: status +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/group.yml b/spec/rtems/ratemon/if/group.yml new file mode 100644 index 00000000..640247af --- /dev/null +++ b/spec/rtems/ratemon/if/group.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + The Rate-Monotonic Manager provides facilities to implement tasks which + execute in a periodic fashion. Critically, it also gathers information about + the execution of those periods and can provide important statistics to the + user which can be used to analyze and tune the application. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +description: null +enabled-by: true +identifier: RTEMSAPIClassicRatemon +interface-type: group +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: ../../if/group +name: Rate-Monotonic Manager +text: | + The Classic API shall provide an interface to the Rate-Monotonic Manager. +type: interface diff --git a/spec/rtems/ratemon/if/header.yml b/spec/rtems/ratemon/if/header.yml new file mode 100644 index 00000000..a9e6f957 --- /dev/null +++ b/spec/rtems/ratemon/if/header.yml @@ -0,0 +1,12 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: This header file defines the Rate-Monotonic Manager API. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +interface-type: header-file +links: +- role: interface-placement + uid: /if/domain +path: rtems/rtems/ratemon.h +prefix: cpukit/include +type: interface diff --git a/spec/rtems/ratemon/if/ident.yml b/spec/rtems/ratemon/if/ident.yml new file mode 100644 index 00000000..43d10a9e --- /dev/null +++ b/spec/rtems/ratemon/if/ident.yml @@ -0,0 +1,60 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Identifies a period object by the specified object name. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/name:/name} ${.:/params[0]/name} + - ${../../type/if/id:/name} *${.:/params[1]/name} + return: ${../../status/if/code:/name} + variants: [] +description: | + This directive obtains the period identifier associated with the period name + specified in ``${.:/params[0]/name}``. +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_ident +notes: | + If the period name is not unique, then the period identifier will match the + first period with that name in the search order. However, this period + identifier is not guaranteed to correspond to the desired period. The period + identifier is used with other rate monotonic related directives to access the + period. + + The objects are searched from lowest to the highest index. Only the local + node is searched. +params: +- description: is the object name to look up. + dir: null + name: name +- description: | + is the pointer to an object identifier variable. The object identifier of + an object with the specified name will be stored in this variable, in case + of a successful operation. + dir: out + name: id +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../../status/if/successful:/name} + - description: | + The ${.:/params[1]/name} parameter was ${/c/if/null:/name}. + value: ${../../status/if/invalid-address:/name} + - description: | + The ${.:/params[0]/name} parameter was 0. + value: ${../../status/if/invalid-name:/name} + - description: | + There was no object with the specified name on the local node. + value: ${../../status/if/invalid-name:/name} +type: interface diff --git a/spec/rtems/ratemon/if/inactive.yml b/spec/rtems/ratemon/if/inactive.yml new file mode 100644 index 00000000..8608f7c0 --- /dev/null +++ b/spec/rtems/ratemon/if/inactive.yml @@ -0,0 +1,15 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: null + variants: [] +description: null +enabled-by: true +interface-type: enumerator +links: [] +name: RATE_MONOTONIC_INACTIVE +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/period-states.yml b/spec/rtems/ratemon/if/period-states.yml new file mode 100644 index 00000000..1b06a560 --- /dev/null +++ b/spec/rtems/ratemon/if/period-states.yml @@ -0,0 +1,23 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition-kind: typedef-only +description: null +enabled-by: true +interface-type: enum +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +- role: interface-enumerator + uid: inactive +- role: interface-enumerator + uid: active +- role: interface-enumerator + uid: expired +name: rtems_rate_monotonic_period_states +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/period-statistics.yml b/spec/rtems/ratemon/if/period-statistics.yml new file mode 100644 index 00000000..86343bb0 --- /dev/null +++ b/spec/rtems/ratemon/if/period-statistics.yml @@ -0,0 +1,82 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: +- default: + brief: | + This member is + definition: ${/c/if/uint32_t:/name} ${.:name} + description: '%' + kind: member + name: count + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/uint32_t:/name} ${.:name} + description: '%' + kind: member + name: missed_count + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: min_cpu_time + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: max_cpu_time + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: total_cpu_time + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: min_wall_time + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: max_wall_time + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: total_wall_time + variants: [] +definition-kind: typedef-only +description: null +enabled-by: true +interface-type: struct +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_period_statistics +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/period-status-define.yml b/spec/rtems/ratemon/if/period-status-define.yml new file mode 100644 index 00000000..77a08505 --- /dev/null +++ b/spec/rtems/ratemon/if/period-status-define.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This constant is the interval passed to the ${period:/name} directive to + obtain status information. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: ${/score/watchdog/if/no-timeout:/name} + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: RTEMS_PERIOD_STATUS +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/period-status.yml b/spec/rtems/ratemon/if/period-status.yml new file mode 100644 index 00000000..59b1bc09 --- /dev/null +++ b/spec/rtems/ratemon/if/period-status.yml @@ -0,0 +1,58 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: +- default: + brief: | + This member is + definition: ${../../type/if/id:/name} ${.:name} + description: '%' + kind: member + name: owner + variants: [] +- default: + brief: | + This member is + definition: ${period-states:/name} ${.:name} + description: '%' + kind: member + name: state + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: since_last_period + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/timespec:/name} ${.:name} + description: '%' + kind: member + name: executed_since_last_period + variants: [] +- default: + brief: | + This member is + definition: ${/c/if/uint32_t:/name} ${.:name} + description: '%' + kind: member + name: postponed_jobs_count + variants: [] +definition-kind: typedef-only +description: null +enabled-by: true +interface-type: struct +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_period_status +notes: null +type: interface diff --git a/spec/rtems/ratemon/if/period.yml b/spec/rtems/ratemon/if/period.yml new file mode 100644 index 00000000..64112baf --- /dev/null +++ b/spec/rtems/ratemon/if/period.yml @@ -0,0 +1,34 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/id:/name} ${.:/params[0]/name} + - ${../../type/if/interval:/name} ${.:/params[1]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_period +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: length +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/printer.yml b/spec/rtems/ratemon/if/printer.yml new file mode 100644 index 00000000..509117ef --- /dev/null +++ b/spec/rtems/ratemon/if/printer.yml @@ -0,0 +1,11 @@ +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 +interface-type: forward-declaration +links: +- role: interface-placement + uid: header +- role: interface-target + uid: ../../io/if/printer +type: interface diff --git a/spec/rtems/ratemon/if/report-statistics-with-plugin.yml b/spec/rtems/ratemon/if/report-statistics-with-plugin.yml new file mode 100644 index 00000000..0078fdce --- /dev/null +++ b/spec/rtems/ratemon/if/report-statistics-with-plugin.yml @@ -0,0 +1,30 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - const ${printer:/name} *${.:/params[0]/name} + return: void + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_report_statistics_with_plugin +notes: null +params: +- description: '%' + dir: null + name: printer +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/report-statistics.yml b/spec/rtems/ratemon/if/report-statistics.yml new file mode 100644 index 00000000..3a7a2702 --- /dev/null +++ b/spec/rtems/ratemon/if/report-statistics.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: [] + return: void + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_report_statistics +notes: null +params: [] +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/reset-all-statistics.yml b/spec/rtems/ratemon/if/reset-all-statistics.yml new file mode 100644 index 00000000..39a03f3b --- /dev/null +++ b/spec/rtems/ratemon/if/reset-all-statistics.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: [] + return: void + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_reset_all_statistics +notes: null +params: [] +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/if/reset-statistics.yml b/spec/rtems/ratemon/if/reset-statistics.yml new file mode 100644 index 00000000..06efe480 --- /dev/null +++ b/spec/rtems/ratemon/if/reset-statistics.yml @@ -0,0 +1,30 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: '%' +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../../type/if/id:/name} ${.:/params[0]/name} + return: ${../../status/if/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_rate_monotonic_reset_statistics +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/rtems/ratemon/req/ident.yml b/spec/rtems/ratemon/req/ident.yml new file mode 100644 index 00000000..3db3c6a7 --- /dev/null +++ b/spec/rtems/ratemon/req/ident.yml @@ -0,0 +1,15 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +functional-type: function +links: +- role: interface-function + uid: ../if/ident +rationale: null +references: [] +requirement-type: functional +text: | + The ${../if/ident:/name} directive shall identify an Classic API + rate monotonic class object by its name as specified by ${../req/ident-local}. +type: requirement diff --git a/spec/rtems/ratemon/val/ident.yml b/spec/rtems/ratemon/val/ident.yml new file mode 100644 index 00000000..37fc0df0 --- /dev/null +++ b/spec/rtems/ratemon/val/ident.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: validation + uid: ../req/ident +test-actions: +- action: | + ${../../req/ident-local:/test-run}( + id_local_object, + ClassicRatemonIdentAction + ); + checks: [] + description: | + Run the generic object identification tests for Classic API rate monotonic + class objects defined by ${../../req/ident-local}. + links: [] +test-brief: Test the ${../if/ident:/name} directive. +test-description: null +test-epilogue: null +test-fixture: null +test-header: null +test-includes: [] +test-local-includes: +- tr-object-ident-local.h +test-prologue: | + rtems_status_code sc; + rtems_id id_local_object; + + sc = rtems_rate_monotonic_create( + ClassicObjectLocalIdentName, + &id_local_object + ); + T_assert_rsc_success( sc ); +test-support: | + static rtems_status_code ClassicRatemonIdentAction( + rtems_name name, + rtems_id *id + ) + { + return rtems_rate_monotonic_ident( name, id ); + } +test-target: testsuites/validation/tc-ratemon-ident.c +type: test-case |