Changeset c970d63 in rtems-central


Ignore:
Timestamp:
Dec 1, 2020, 1:57:03 PM (6 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
0adc07b
Parents:
cb4eca2
git-author:
Sebastian Huber <sebastian.huber@…> (12/01/20 13:57:03)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/02/20 10:13:36)
Message:

spec: Review Timer Manager API

Files:
28 edited

Legend:

Unmodified
Added
Removed
  • config.yml

    rcb4eca2 rc970d63  
    101101    /if/domain: modules/rtems
    102102interface-documentation:
     103- directives-target: modules/rtems-docs/c-user/timer/directives.rst
     104  group: /rtems/timer/if/group
     105  introduction-target: modules/rtems-docs/c-user/timer/introduction.rst
    103106- directives-target: modules/rtems-docs/c-user/io/directives.rst
    104107  group: /rtems/io/if/group
  • spec/rtems/timer/if/cancel.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Cancels the timer.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1213    return: ${../../status/if/code:/name}
    1314  variants: []
    14 description: null
     15description: |
     16  This directive cancels the timer specified in the ${.:/params[0]/name}
     17  parameter.  This timer will be reinitiated by the next invocation of
     18  ${reset:/name}, ${fire-after:/name}, or ${fire-when:/name} with the same
     19  timer identifier.
    1520enabled-by: true
    16 index-entries: []
     21index-entries:
     22- cancel a timer
    1723interface-type: function
    1824links:
     
    2228  uid: group
    2329name: rtems_timer_cancel
    24 notes: null
     30notes: |
     31  This directive will not cause the running task to be preempted.
    2532params:
    26 - description: '%'
     33- description: is the timer identifier.
    2734  dir: null
    2835  name: id
    2936return:
    3037  return: null
    31   return-values: []
     38  return-values:
     39  - description: |
     40      The requested operation was successful.
     41    value: ${../../status/if/successful:/name}
     42  - description: |
     43      There was no timer associated with the identifier specified by
     44      ${.:/params[0]/name}.
     45    value: ${../../status/if/invalid-id:/name}
    3246type: interface
  • spec/rtems/timer/if/class-bit-not-dormant.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class bit indicates that the timer is not dormant.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/class-bit-on-task.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class bit indicates that the timer routine executes in a task
     4  context.
    35copyrights:
    46- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/class-bit-time-of-day.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class bit indicates that the timer uses a time of day.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/classes.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  The timer class indicates how the timer was most recently fired.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/create.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Creates a timer.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1314    return: ${../../status/if/code:/name}
    1415  variants: []
    15 description: null
     16description: |
     17  This directive creates a timer.  The assigned object identifier is returned
     18  in ${.:/params[1]/name}.  This identifier is used to access the timer with
     19  other timer related directives.
    1620enabled-by: true
    17 index-entries: []
     21index-entries:
     22- create a timer
    1823interface-type: function
    1924links:
     
    2328  uid: group
    2429name: rtems_timer_create
    25 notes: null
     30notes: |
     31  This directive may cause the calling task to be preempted due to an obtain
     32  and release of the object allocator mutex.
     33
     34  For control and maintenance of the timer, RTEMS allocates a
     35  ${/glossary/tmcb:/term} from the local TMCB free pool and initializes it.
     36
     37  In SMP configurations, the processor of the currently executing thread
     38  determines the processor used for the created timer.  During the life-time of
     39  the timer this processor is used to manage the timer internally.
    2640params:
    27 - description: '%'
     41- description: is the name of the timer.
    2842  dir: null
    2943  name: name
    30 - description: '%'
    31   dir: null
     44- description: |
     45    is the pointer to an object identifier variable.  The identifier of the
     46    created timer object will be stored in this variable, in case of a
     47    successful operation.
     48  dir: out
    3249  name: id
    3350return:
    3451  return: null
    35   return-values: []
     52  return-values:
     53  - description: |
     54      The requested operation was successful.
     55    value: ${../../status/if/successful:/name}
     56  - description: |
     57      The timer name was invalid.
     58    value: ${../../status/if/invalid-name:/name}
     59  - description: |
     60      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
     61    value: ${../../status/if/invalid-address:/name}
     62  - description: |
     63      There was no inactive object available to create a new timer.  The number
     64      of timers available to the application is configured through the
     65      ${/acfg/if/max-timers:/name} configuration option.
     66    value: ${../../status/if/too-many:/name}
    3667type: interface
  • spec/rtems/timer/if/delete.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Deletes the timer.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1213    return: ${../../status/if/code:/name}
    1314  variants: []
    14 description: null
     15description: |
     16  This directive deletes the timer specified by the ${.:/params[0]/name}
     17  parameter.  If the timer is running, it is automatically canceled.
    1518enabled-by: true
    16 index-entries: []
     19index-entries:
     20- delete a timer
    1721interface-type: function
    1822links:
     
    2226  uid: group
    2327name: rtems_timer_delete
    24 notes: null
     28notes: |
     29  This directive may cause the calling task to be preempted due to an obtain
     30  and release of the object allocator mutex.
     31
     32  The ${/glossary/tmcb:/term} for the deleted timer is reclaimed by RTEMS.
     33
     34  A timer can be deleted by a task other than the task which created the timer.
    2535params:
    26 - description: '%'
     36- description: is the timer identifier.
    2737  dir: null
    2838  name: id
    2939return:
    3040  return: null
    31   return-values: []
     41  return-values:
     42  - description: |
     43      The requested operation was successful.
     44    value: ${../../status/if/successful:/name}
     45  - description: |
     46      There was no timer associated with the identifier specified by
     47      ${.:/params[0]/name}.
     48    value: ${../../status/if/invalid-id:/name}
    3249type: interface
  • spec/rtems/timer/if/dormant.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class indicates that the timer was never in use.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/fire-after.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Fires the timer after the interval.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1516    return: ${../../status/if/code:/name}
    1617  variants: []
    17 description: null
     18description: |
     19  This directive initiates the timer specified by ${.:/params[0]/name}.  If the
     20  timer is running, it is automatically canceled before being initiated.  The
     21  timer is scheduled to fire after an interval of clock ticks has passed
     22  specified by ${.:/params[1]/name}.  When the timer fires, the timer service
     23  routine ${.:/params[2]/name} will be invoked with the argument
     24  ${.:/params[3]/name} in the context of the clock tick ${/glossary/isr:/term}.
    1825enabled-by: true
    19 index-entries: []
     26index-entries:
     27- fire a timer after an interval
    2028interface-type: function
    2129links:
     
    2533  uid: group
    2634name: rtems_timer_fire_after
    27 notes: null
     35notes: |
     36  This directive will not cause the running task to be preempted.
    2837params:
    29 - description: '%'
     38- description: is the timer identifier.
    3039  dir: null
    3140  name: id
    32 - description: '%'
     41- description: is the interval until the routine is fired in clock ticks.
    3342  dir: null
    3443  name: ticks
    35 - description: '%'
     44- description: is the routine to schedule.
    3645  dir: null
    3746  name: routine
    38 - description: '%'
     47- description: is the argument passed to the routine when it is fired.
    3948  dir: null
    4049  name: user_data
    4150return:
    4251  return: null
    43   return-values: []
     52  return-values:
     53  - description: |
     54      The requested operation was successful.
     55    value: ${../../status/if/successful:/name}
     56  - description: |
     57      The ${.:/params[1]/name} parameter was 0.
     58    value: ${../../status/if/invalid-number:/name}
     59  - description: |
     60      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
     61    value: ${../../status/if/invalid-address:/name}
     62  - description: |
     63      There was no timer associated with the identifier specified by
     64      ${.:/params[0]/name}.
     65    value: ${../../status/if/invalid-id:/name}
    4466type: interface
  • spec/rtems/timer/if/fire-when.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Fires the timer at the time of day.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1516    return: ${../../status/if/code:/name}
    1617  variants: []
    17 description: null
     18description: |
     19  This directive initiates the timer specified by ${.:/params[0]/name}.  If the
     20  timer is running, it is automatically canceled before being initiated.  The
     21  timer is scheduled to fire at the time of day specified by
     22  ${.:/params[1]/name}.  When the timer fires, the timer service routine
     23  ${.:/params[2]/name} will be invoked with the argument ${.:/params[3]/name}
     24  in the context of the clock tick ${/glossary/isr:/term}.
    1825enabled-by: true
    19 index-entries: []
     26index-entries:
     27- fire a timer at time of day
    2028interface-type: function
    2129links:
     
    2533  uid: group
    2634name: rtems_timer_fire_when
    27 notes: null
     35notes: |
     36  This directive will not cause the running task to be preempted.
    2837params:
    29 - description: '%'
     38- description: is the timer identifier.
    3039  dir: null
    3140  name: id
    32 - description: '%'
     41- description: is the time of day when the routine is fired.
    3342  dir: null
    3443  name: wall_time
    35 - description: '%'
     44- description: is the routine to schedule.
    3645  dir: null
    3746  name: routine
    38 - description: '%'
     47- description: is the argument passed to the routine when it is fired.
    3948  dir: null
    4049  name: user_data
    4150return:
    4251  return: null
    43   return-values: []
     52  return-values:
     53  - description: |
     54      The requested operation was successful.
     55    value: ${../../status/if/successful:/name}
     56  - description: |
     57      The system date and time was not set.
     58    value: ${../../status/if/not-defined:/name}
     59  - description: |
     60      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
     61    value: ${../../status/if/invalid-address:/name}
     62  - description: |
     63      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
     64    value: ${../../status/if/invalid-address:/name}
     65  - description: |
     66      The time of day was invalid.
     67    value: ${../../status/if/invalid-clock:/name}
     68  - description: |
     69      There was no timer associated with the identifier specified by
     70      ${.:/params[0]/name}.
     71    value: ${../../status/if/invalid-id:/name}
    4472type: interface
  • spec/rtems/timer/if/get-information.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Gets information about the timer.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1314    return: ${../../status/if/code:/name}
    1415  variants: []
    15 description: null
     16description: |
     17  This directive returns information about the timer.
    1618enabled-by: true
    1719index-entries: []
     
    2325  uid: group
    2426name: rtems_timer_get_information
    25 notes: null
     27notes: |
     28  This directive will not cause the running task to be preempted.
    2629params:
    27 - description: '%'
     30- description: is the timer identifier.
    2831  dir: null
    2932  name: id
    30 - description: '%'
    31   dir: null
     33- description: |
     34    is the pointer to a timer information variable.  The information about the
     35    timer will be stored in this variable, in case of a successful operation.
     36  dir: out
    3237  name: the_info
    3338return:
    3439  return: null
    35   return-values: []
     40  return-values:
     41  - description: |
     42      The requested operation was successful.
     43    value: ${../../status/if/successful:/name}
     44  - description: |
     45      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
     46    value: ${../../status/if/invalid-address:/name}
     47  - description: |
     48      There was no timer associated with the identifier specified by
     49      ${.:/params[0]/name}.
     50    value: ${../../status/if/invalid-id:/name}
    3651type: interface
  • spec/rtems/timer/if/group.yml

    rcb4eca2 rc970d63  
    1515- role: interface-ingroup
    1616  uid: ../../if/group
     17- role: placement-order
     18  uid: create
     19- role: placement-order
     20  uid: ident
     21- role: placement-order
     22  uid: cancel
     23- role: placement-order
     24  uid: delete
     25- role: placement-order
     26  uid: fire-after
     27- role: placement-order
     28  uid: fire-when
     29- role: placement-order
     30  uid: initiate-server
     31- role: placement-order
     32  uid: server-fire-after
     33- role: placement-order
     34  uid: server-fire-when
     35- role: placement-order
     36  uid: reset
    1737name: Timer Manager
    1838text: |
  • spec/rtems/timer/if/header.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: This header file defines the Timer Manager API.
     2brief: |
     3  This header file provides the Timer Manager API.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    910- role: interface-placement
    1011  uid: /if/domain
     12- role: interface-ingroup
     13  uid: ../req/group
    1114path: rtems/rtems/timer.h
    1215prefix: cpukit/include
  • spec/rtems/timer/if/ident.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    22brief: |
    3   Identifies a timer object by the specified object name.
     3  Identifies a timer by the object name.
    44copyrights:
    55- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1818  specified in ${.:/params[0]/name}.
    1919enabled-by: true
    20 index-entries: []
     20index-entries:
     21- obtain the ID of a timer
    2122interface-type: function
    2223links:
  • spec/rtems/timer/if/information.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  The structure contains information about a timer.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    78- default:
    89    brief: |
    9       This member is
     10      The timer class member indicates how the timer was most recently fired.
    1011    definition: ${classes:/name} ${.:name}
    11     description: '%'
     12    description: null
    1213    kind: member
    1314    name: the_class
     
    1516- default:
    1617    brief: |
    17       This member is
     18      This member indicates the initial requested interval.
    1819    definition: ${/score/watchdog/if/interval:/name} ${.:name}
    19     description: '%'
     20    description: null
    2021    kind: member
    2122    name: initial
     
    2324- default:
    2425    brief: |
    25       This member is
     26      This member indicates the time the timer was initially scheduled.
    2627    definition: ${/score/watchdog/if/interval:/name} ${.:name}
    27     description: '%'
     28    description: |
     29      The time is in clock ticks since the clock driver initialization or the
     30      last clock tick counter overflow.
    2831    kind: member
    2932    name: start_time
     
    3134- default:
    3235    brief: |
    33       This member is
     36      This member indicates the time the timer was scheduled to fire.
    3437    definition: ${/score/watchdog/if/interval:/name} ${.:name}
    35     description: '%'
     38    description: |
     39      The time is in clock ticks since the clock driver initialization or the
     40      last clock tick counter overflow.
    3641    kind: member
    3742    name: stop_time
  • spec/rtems/timer/if/initiate-server.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Initiates the Timer Server.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1415    return: ${../../status/if/code:/name}
    1516  variants: []
    16 description: null
     17description: |
     18  This directive initiates the Timer Server task.  This task is responsible for
     19  executing all timers initiated via the ${server-fire-after:/name} or
     20  ${server-fire-when:/name} directives.
    1721enabled-by: true
    18 index-entries: []
     22index-entries:
     23- initiate the Timer Server
    1924interface-type: function
    2025links:
     
    2429  uid: group
    2530name: rtems_timer_initiate_server
    26 notes: null
     31notes: |
     32  This directive may cause the calling task to be preempted due to an obtain
     33  and release of the object allocator mutex.
     34
     35  The Timer Server task is created using the ${../../task/if/create:/name}
     36  directive and must be accounted for when configuring the system.
    2737params:
    28 - description: '%'
     38- description: is the task priority.
    2939  dir: null
    3040  name: priority
    31 - description: '%'
     41- description: is the task stack size in bytes.
    3242  dir: null
    3343  name: stack_size
    34 - description: '%'
     44- description: is the task attribute set.
    3545  dir: null
    3646  name: attribute_set
    3747return:
    3848  return: null
    39   return-values: []
     49  return-values:
     50  - description: |
     51      The requested operation was successful.
     52    value: ${../../status/if/successful:/name}
     53  - description: |
     54      The Timer Server was already initiated.
     55    value: ${../../status/if/incorrect-state:/name}
     56  - description: |
     57      The task priority was invalid.
     58    value: ${../../status/if/invalid-priority:/name}
     59  - description: |
     60      There was no inactive task object available to create the Timer Server
     61      task.
     62    value: ${../../status/if/too-many:/name}
     63  - description: |
     64      There was not enough memory to allocate the task storage area.  The task
     65      storage area contains the task stack, the thread-local storage, and the
     66      floating point context.
     67    value: ${../../status/if/unsatisfied:/name}
     68  - description: |
     69      One of the task create extensions failed to create the Timer Server task.
     70    value: ${../../status/if/unsatisfied:/name}
    4071type: interface
  • spec/rtems/timer/if/interval-on-task.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class indicates that the timer is currently in use as an interval
     4  timer which will fire in the context of the Timer Server task.
    35copyrights:
    46- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/interval.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class indicates that the timer is currently in use as an interval
     4  timer which will fire in the context of the clock tick
     5  ${/glossary/isr:/term}.
    36copyrights:
    47- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/reset.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Resets the timer.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1213    return: ${../../status/if/code:/name}
    1314  variants: []
    14 description: null
     15description: |
     16  This directive resets the timer specified by ${.:/params[0]/name}.  This
     17  timer must have been previously initiated with either the ${fire-after:/name}
     18  or ${server-fire-after:/name} directive.  If active the timer is canceled,
     19  after which the timer is reinitiated using the same interval and timer
     20  service routine which the original ${fire-after:/name} or
     21  ${server-fire-after:/name} directive used.
    1522enabled-by: true
    16 index-entries: []
     23index-entries:
     24- reset a timer
    1725interface-type: function
    1826links:
     
    2230  uid: group
    2331name: rtems_timer_reset
    24 notes: null
     32notes: |
     33  This directive will not cause the running task to be preempted.
     34
     35  If the timer has not been used or the last usage of this timer was by a
     36  ${fire-when:/name} or ${server-fire-when:/name} directive, then the
     37  ${../../status/if/not-defined:/name} error is returned.
     38
     39  Restarting a cancelled after timer results in the timer being reinitiated
     40  with its previous timer service routine and interval.
    2541params:
    26 - description: '%'
     42- description: is the timer identifier.
    2743  dir: null
    2844  name: id
    2945return:
    3046  return: null
    31   return-values: []
     47  return-values:
     48  - description: |
     49      The requested operation was successful.
     50    value: ${../../status/if/successful:/name}
     51  - description: |
     52      There was no timer associated with the identifier specified by
     53      ${.:/params[0]/name}.
     54    value: ${../../status/if/invalid-id:/name}
     55  - description: |
     56      The timer was not of the interval class.
     57    value: ${../../status/if/not-defined:/name}
    3258type: interface
  • spec/rtems/timer/if/server-default-priority.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This constant represents the default value for the task priority of the Timer
     4  Server.
    35copyrights:
    46- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    79  default: ( (${../../task/if/priority:/name}) -1 )
    810  variants: []
    9 description: null
     11description: |
     12  When given this priority, a special high priority not accessible via the
     13  Classic API is used.
    1014enabled-by: true
    1115index-entries: []
  • spec/rtems/timer/if/server-fire-after.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Fires the timer after the interval using the Timer Server.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1516    return: ${../../status/if/code:/name}
    1617  variants: []
    17 description: null
     18description: |
     19  This directive initiates the timer specified by ${.:/params[0]/name}.  If the
     20  timer is running, it is automatically canceled before being initiated.  The
     21  timer is scheduled to fire after an interval of clock ticks has passed
     22  specified by ${.:/params[1]/name}.  When the timer fires, the timer service
     23  routine ${.:/params[2]/name} will be invoked with the argument
     24  ${.:/params[3]/name} in the context of the Timer Server task.
    1825enabled-by: true
    19 index-entries: []
     26index-entries:
     27- fire task-based a timer after an interval
    2028interface-type: function
    2129links:
     
    2533  uid: group
    2634name: rtems_timer_server_fire_after
    27 notes: null
     35notes: |
     36  This directive will not cause the running task to be preempted.
    2837params:
    29 - description: '%'
     38- description: is the timer identifier.
    3039  dir: null
    3140  name: id
    32 - description: '%'
     41- description: is the interval until the routine is fired in clock ticks.
    3342  dir: null
    3443  name: ticks
    35 - description: '%'
     44- description: is the routine to schedule.
    3645  dir: null
    3746  name: routine
    38 - description: '%'
     47- description: is the argument passed to the routine when it is fired.
    3948  dir: null
    4049  name: user_data
    4150return:
    4251  return: null
    43   return-values: []
     52  return-values:
     53  - description: |
     54      The requested operation was successful.
     55    value: ${../../status/if/successful:/name}
     56  - description: |
     57      The Timer Server was not initiated.
     58    value: ${../../status/if/incorrect-state:/name}
     59  - description: |
     60      The ${.:/params[1]/name} parameter was 0.
     61    value: ${../../status/if/invalid-number:/name}
     62  - description: |
     63      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
     64    value: ${../../status/if/invalid-address:/name}
     65  - description: |
     66      There was no timer associated with the identifier specified by
     67      ${.:/params[0]/name}.
     68    value: ${../../status/if/invalid-id:/name}
    4469type: interface
  • spec/rtems/timer/if/server-fire-when.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  Fires the timer at the time of day using the Timer Server.
    34copyrights:
    45- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    1516    return: ${../../status/if/code:/name}
    1617  variants: []
    17 description: null
     18description: |
     19  This directive initiates the timer specified by ${.:/params[0]/name}.  If the
     20  timer is running, it is automatically canceled before being initiated.  The
     21  timer is scheduled to fire at the time of day specified by
     22  ${.:/params[1]/name}.  When the timer fires, the timer service routine
     23  ${.:/params[2]/name} will be invoked with the argument ${.:/params[3]/name}
     24  in the context of the Timer Server task.
    1825enabled-by: true
    19 index-entries: []
     26index-entries:
     27- fire a task-based timer at time of day
    2028interface-type: function
    2129links:
     
    2533  uid: group
    2634name: rtems_timer_server_fire_when
    27 notes: null
     35notes: |
     36  This directive will not cause the running task to be preempted.
    2837params:
    29 - description: '%'
     38- description: is the timer identifier.
    3039  dir: null
    3140  name: id
    32 - description: '%'
     41- description: is the time of day when the routine is fired.
    3342  dir: null
    3443  name: wall_time
    35 - description: '%'
     44- description: is the routine to schedule.
    3645  dir: null
    3746  name: routine
    38 - description: '%'
     47- description: is the argument passed to the routine when it is fired.
    3948  dir: null
    4049  name: user_data
    4150return:
    4251  return: null
    43   return-values: []
     52  return-values:
     53  - description: |
     54      The requested operation was successful.
     55    value: ${../../status/if/successful:/name}
     56  - description: |
     57      The Timer Server was not initiated.
     58    value: ${../../status/if/incorrect-state:/name}
     59  - description: |
     60      The system date and time was not set.
     61    value: ${../../status/if/not-defined:/name}
     62  - description: |
     63      The ${.:/params[2]/name} parameter was ${/c/if/null:/name}.
     64    value: ${../../status/if/invalid-address:/name}
     65  - description: |
     66      The ${.:/params[1]/name} parameter was ${/c/if/null:/name}.
     67    value: ${../../status/if/invalid-address:/name}
     68  - description: |
     69      The time of day was invalid.
     70    value: ${../../status/if/invalid-clock:/name}
     71  - description: |
     72      There was no timer associated with the identifier specified by
     73      ${.:/params[0]/name}.
     74    value: ${../../status/if/invalid-id:/name}
    4475type: interface
  • spec/rtems/timer/if/service-routine-entry.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This type defines the prototype of routines which can be fired by directives
     4  of the Timer Manager.
    35copyrights:
    46- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/service-routine.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This type defines the return type of routines which can be fired by
     4  directives of the Timer Manager.
    35copyrights:
    46- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
     
    79  default: void ${.:/name}
    810  variants: []
    9 description: null
     11description: |
     12  This type can be used to document timer service routines in the source code.
    1013enabled-by: true
    1114index-entries: []
  • spec/rtems/timer/if/time-of-day-on-task.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class indicates that the timer is currently in use as an time of
     4  day timer which will fire in the context of the Timer Server task.
    35copyrights:
    46- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/if/time-of-day.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: '%'
     2brief: |
     3  This timer class indicates that the timer is currently in use as an time of
     4  day timer which will fire in the context of the clock tick
     5  ${/glossary/isr:/term}.
    36copyrights:
    47- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
  • spec/rtems/timer/req/group.yml

    rcb4eca2 rc970d63  
    11SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
    2 brief: |
    3   This group contains the Timer Manager implementation.
    42copyrights:
    53- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    6 description: null
    74enabled-by: true
    8 identifier: ClassicTimerImpl
    9 index-entries: []
    10 interface-type: group
     5identifier: RTEMSImplClassicTimer
    116links:
    127- role: interface-ingroup
    13   uid: ../../if/group
    14 name: Timer Manager
     8  uid: /req/impl
     9non-functional-type: design-group
     10rationale: null
     11references: []
     12requirement-type: non-functional
    1513text: |
    16   There shall be a software architecture component containing the Timer Manager
     14  The software architecture shall have a component containing the Timer Manager
    1715  implementation.
    18 type: interface
     16type: requirement
Note: See TracChangeset for help on using the changeset viewer.