summaryrefslogtreecommitdiffstats
path: root/spec/rtems/ratemon/if/period.yml
blob: faf6fb8f25b2b19fd7cf5da3889a799b8474ee96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
  Concludes the current period and start the next period, or gets the period
  status.
copyrights:
- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
- Copyright (C) 2017 Kuan-Hsun Chen
- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
definition:
  default:
    attributes: null
    body: null
    params:
    - ${../../type/if/id:/name} ${.:/params[0]/name}
    - ${../../type/if/interval:/name} ${.:/params[1]/name}
    return: ${../../status/if/code:/name}
  variants: []
description: |
  This directive initiates the rate monotonic period specified by
  ${.:/params[0]/name}  with a length of period ticks specified by
  ${.:/params[1]/name}.  If the period is running, then the calling task will
  block for the remainder of the period before reinitiating the period with the
  specified period length.  If the period was not running (either expired or
  never initiated), the period is immediately initiated and the directive
  returns immediately.  If the period has expired, the postponed job will be
  released immediately and the following calls of this directive will release
  postponed jobs until there is no more deadline miss.

  If invoked with a period length of ${period-status-define:/name} ticks, the
  current state of the period will be returned.  The directive status indicates
  the current state of the period.  This does not alter the state or period
  length of the period.
enabled-by: true
index-entries:
- conclude current period
- start current period
- period initiation
interface-type: function
links:
- role: interface-placement
  uid: header
- role: interface-ingroup
  uid: group
- role: constraint
  uid: /constraint/directive-ctx-task
- role: constraint
  uid: /constraint/directive-creator-only
name: rtems_rate_monotonic_period
notes: |
  Resetting the processor usage time of tasks has no impact on the period
  status and statistics.
params:
- description: |
    is the rate monotonic period identifier.
  dir: null
  name: id
- description: |
    is the period length in ${/glossary/clock-tick:/plural} or
    ${period-status-define:/name} to get the period status.
  dir: null
  name: length
return:
  return: null
  return-values:
  - description: |
      The requested operation was successful.
    value: ${../../status/if/successful:/name}
  - description: |
      There was no rate monotonic period associated with the identifier
      specified by ${.:/params[0]/name}.
    value: ${../../status/if/invalid-id:/name}
  - description: |
      The rate monotonic period was not created by the calling task.
    value: ${../../status/if/not-owner-of-resource:/name}
  - description: |
      The rate monotonic period has never been initiated (only possible when
      the ${.:/params[1]/name} parameter was equal to
      ${period-status-define:/name}).
    value: ${../../status/if/not-defined:/name}
  - description: |
      The rate monotonic period has expired.
    value: ${../../status/if/timeout:/name}
type: interface