diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-06-05 09:56:10 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-07-03 10:22:45 +0200 |
commit | a243fc680198fa93453d2e49b9590b2bc4f882cd (patch) | |
tree | af90f47926662e6b58a41d0eaa62928669f77d8c /spec/if | |
parent | spec: Add /if/rtems/attr/* (diff) | |
download | rtems-central-a243fc680198fa93453d2e49b9590b2bc4f882cd.tar.bz2 |
spec: Add /if/rtems/tasks/*
Diffstat (limited to 'spec/if')
58 files changed, 1876 insertions, 1 deletions
diff --git a/spec/if/c/cpu_set_t.yml b/spec/if/c/cpu_set_t.yml new file mode 100644 index 00000000..19f26e61 --- /dev/null +++ b/spec/if/c/cpu_set_t.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: sys-cpuset +name: cpu_set_t +type: interface diff --git a/spec/if/impl/cpu/uint32ptr.yml b/spec/if/impl/cpu/uint32ptr.yml new file mode 100644 index 00000000..5d632ced --- /dev/null +++ b/spec/if/impl/cpu/uint32ptr.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: header +name: CPU_Uint32ptr +type: interface diff --git a/spec/if/impl/maximum-priority.yml b/spec/if/impl/maximum-priority.yml new file mode 100644 index 00000000..bc499a17 --- /dev/null +++ b/spec/if/impl/maximum-priority.yml @@ -0,0 +1,26 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Returns the maximum priority of the scheduler with index zero. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: [] + return: ${/if/rtems/tasks/priority:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: /if/rtems/tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: _RTEMS_Maximum_priority +notes: null +params: [] +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/impl/object/id-of-self.yml b/spec/if/impl/object/id-of-self.yml new file mode 100644 index 00000000..35f3abb7 --- /dev/null +++ b/spec/if/impl/object/id-of-self.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: header +name: OBJECTS_ID_OF_SELF +type: interface diff --git a/spec/if/impl/smp/get-current-processor.yml b/spec/if/impl/smp/get-current-processor.yml new file mode 100644 index 00000000..4d84384c --- /dev/null +++ b/spec/if/impl/smp/get-current-processor.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: header +name: _SMP_Get_current_processor +type: interface diff --git a/spec/if/impl/smp/get-processor-maximum.yml b/spec/if/impl/smp/get-processor-maximum.yml new file mode 100644 index 00000000..f8be5060 --- /dev/null +++ b/spec/if/impl/smp/get-processor-maximum.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: header +name: _SMP_Get_processor_maximum +type: interface diff --git a/spec/if/impl/stack/minimum-size.yml b/spec/if/impl/stack/minimum-size.yml new file mode 100644 index 00000000..ff2dcaad --- /dev/null +++ b/spec/if/impl/stack/minimum-size.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: header +name: STACK_MINIMUM_SIZE +type: interface diff --git a/spec/if/impl/watchdog/no-timeout.yml b/spec/if/impl/watchdog/no-timeout.yml new file mode 100644 index 00000000..de64f600 --- /dev/null +++ b/spec/if/impl/watchdog/no-timeout.yml @@ -0,0 +1,10 @@ +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: unspecified +links: +- role: interface-placement + uid: header +name: WATCHDOG_NO_TIMEOUT +type: interface diff --git a/spec/if/rtems/config/api-table.yml b/spec/if/rtems/config/api-table.yml index b32d970e..386072d7 100644 --- a/spec/if/rtems/config/api-table.yml +++ b/spec/if/rtems/config/api-table.yml @@ -108,7 +108,7 @@ definition: brief: | This field contains the pointer to Classic API Initialization Tasks Table of this application. - definition: const rtems_initialization_tasks_table *${.:name} + definition: const ${../tasks/initialization-table:/name} *${.:name} description: null kind: member name: User_initialization_tasks_table diff --git a/spec/if/rtems/scheduler/add-processor.yml b/spec/if/rtems/scheduler/add-processor.yml new file mode 100644 index 00000000..eadecc7e --- /dev/null +++ b/spec/if/rtems/scheduler/add-processor.yml @@ -0,0 +1,52 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Adds the processor to the set of processors owned by the scheduler instance. +copyrights: +- Copyright (C) 2016, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${/if/c/uint32_t:/name} ${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_add_processor +notes: | + This directive shall be called from task context. It obtains and releases + the objects allocator lock. +params: +- description: is the scheduler instance identifier. + dir: null + name: scheduler_id +- description: is the index of the processor to add. + dir: null + name: cpu_index +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../status/successful:/name} + - description: | + The processor was configured to be used by the application, however, it + was not online. + value: ${../status/incorrect-state:/name} + - description: | + The scheduler instance identifier was invalid. + value: ${../status/invalid-id:/name} + - description: | + The processor was not configured to be used by the application. + value: ${../status/not-configured:/name} + - description: | + The processor was already assigned to a scheduler instance. + value: ${../status/resource-in-use:/name} +type: interface diff --git a/spec/if/rtems/scheduler/get-maximum-priority.yml b/spec/if/rtems/scheduler/get-maximum-priority.yml new file mode 100644 index 00000000..b451aa8a --- /dev/null +++ b/spec/if/rtems/scheduler/get-maximum-priority.yml @@ -0,0 +1,46 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Gets the maximum task priority of the scheduler instance. +copyrights: +- Copyright (C) 2018, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${../tasks/priority:/name} *${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_get_maximum_priority +notes: null +params: +- description: is the scheduler instance identifier. + dir: null + name: scheduler_id +- description: | + is the pointer to a task priority variable. The maximum priority of the + scheduler instance will be stored in this variable, if the operation is + successful. + dir: out + name: priority +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../status/successful:/name} + - description: | + The ${.:/params[1]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The scheduler instance identifier was invalid. + value: ${../status/invalid-id:/name} +type: interface diff --git a/spec/if/rtems/scheduler/get-processor-maximum.yml b/spec/if/rtems/scheduler/get-processor-maximum.yml new file mode 100644 index 00000000..67648a77 --- /dev/null +++ b/spec/if/rtems/scheduler/get-processor-maximum.yml @@ -0,0 +1,33 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Returns the processor maximum supported by the system. +copyrights: +- Copyright (C) 2013, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: ${/if/impl/smp/get-processor-maximum:/name}() + variants: [] +description: | + In uniprocessor configurations, this macro evaluates to a compile time + constant of one. + + In SMP configurations, this macro returns the minimum of the processors + (physically or virtually) available by the platform and the configured + processor maximum. Not all processors in the range from processor index zero + to the last processor index (which is the processor maximum minus one) may be + configured to be used by a scheduler or may be online (online processors have + a scheduler assigned). +enabled-by: true +interface-type: macro +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_get_processor_maximum +notes: null +params: [] +return: + return: | + The processor maximum supported by the system is returned. + return-values: [] +type: interface diff --git a/spec/if/rtems/scheduler/get-processor-set.yml b/spec/if/rtems/scheduler/get-processor-set.yml new file mode 100644 index 00000000..2cd01b50 --- /dev/null +++ b/spec/if/rtems/scheduler/get-processor-set.yml @@ -0,0 +1,58 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Gets the set of processors owned by the scheduler instance. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${/if/c/size_t:/name} ${.:/params[1]/name} + - ${/if/c/cpu_set_t:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_get_processor_set +notes: null +params: +- description: is the scheduler instance identifier. + dir: null + name: scheduler_id +- description: | + is the size of the referenced processor set variable in bytes. This value + shall be positive. + dir: null + name: cpusetsize +- description: | + is the pointer to a processor set variable. The processor set of the + scheduler instance will be stored in this variable, in case of a successful + operation. A set bit in the processor set means that the corresponding + processor is owned by the scheduler instance, otherwise the bit is cleared. + dir: out + name: cpuset +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../status/successful:/name} + - description: | + The ${.:/params[2]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The scheduler instance identifier was invalid. + value: ${../status/invalid-id:/name} + - description: | + The provided processor set was too small for the set of processors owned + by the scheduler instance. + value: ${../status/invalid-number:/name} +type: interface diff --git a/spec/if/rtems/scheduler/get-processor.yml b/spec/if/rtems/scheduler/get-processor.yml new file mode 100644 index 00000000..ce92a420 --- /dev/null +++ b/spec/if/rtems/scheduler/get-processor.yml @@ -0,0 +1,35 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Returns the index of the current processor. +copyrights: +- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: ${/if/impl/smp/get-current-processor:/name}() + variants: [] +description: | + In uniprocessor configurations, this macro evaluates to a compile time + constant of zero. + + In SMP configurations, an architecture-specific method is used to obtain the + index of the current processor in the system. The set of processor indices + is the range of integers starting with zero up to + ${get-processor-maximum:/name} minus one. +enabled-by: true +interface-type: macro +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_get_processor +notes: | + Outside of sections with disabled thread dispatching the current processor + index may change after every instruction since the thread may migrate from + one processor to another. Sections with disabled interrupts are sections + with thread dispatching disabled. +params: [] +return: + return: | + The index of the current processor is returned. + return-values: [] +type: interface diff --git a/spec/if/rtems/scheduler/ident-by-processor-set.yml b/spec/if/rtems/scheduler/ident-by-processor-set.yml new file mode 100644 index 00000000..34aed222 --- /dev/null +++ b/spec/if/rtems/scheduler/ident-by-processor-set.yml @@ -0,0 +1,63 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Identifies a scheduler instance by a processor set. +copyrights: +- Copyright (C) 2017, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${/if/c/size_t:/name} ${.:/params[0]/name} + - const ${/if/c/cpu_set_t:/name} *${.:/params[1]/name} + - ${../types/id:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: | + The scheduler instance is selected according to the highest numbered online + processor in the specified processor set. +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_ident_by_processor_set +notes: null +params: +- description: | + is the size of the referenced processor set variable in bytes. This value + shall be positive. + dir: null + name: cpusetsize +- description: | + is the pointer to a processor set variable. The referenced processor set + will be used to identify the scheduler instance. + dir: null + name: cpuset +- description: | + is the pointer to an object identifier variable. The identifier of the + scheduler instance 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/successful:/name} + - description: | + The processor set was valid, however, the highest numbered online + processor in the processor set was not owned by a scheduler instance. + value: ${../status/incorrect-state:/name} + - description: | + The ${.:/params[2]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The processor set contained no online processor. + value: ${../status/invalid-name:/name} + - description: | + The processor set size was invalid. + value: ${../status/invalid-size:/name} +type: interface diff --git a/spec/if/rtems/scheduler/ident-by-processor.yml b/spec/if/rtems/scheduler/ident-by-processor.yml new file mode 100644 index 00000000..60332c7b --- /dev/null +++ b/spec/if/rtems/scheduler/ident-by-processor.yml @@ -0,0 +1,51 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Identifies a scheduler instance by a processor index. +copyrights: +- Copyright (C) 2017, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${/if/c/uint32_t:/name} ${.:/params[0]/name} + - ${../types/id:/name} *${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_ident_by_processor +notes: null +params: +- description: | + is the processor index to identify the scheduler instance. + dir: null + name: cpu_index +- description: | + is the pointer to an object identifier variable. The identifier of the + scheduler instance 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/successful:/name} + - description: | + The processor index was valid, however, the corresponding processor was + not owned by a scheduler instance. + value: ${../status/incorrect-state:/name} + - description: | + The ${.:/params[1]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The processor index was invalid. + value: ${../status/invalid-name:/name} +type: interface diff --git a/spec/if/rtems/scheduler/ident.yml b/spec/if/rtems/scheduler/ident.yml new file mode 100644 index 00000000..1defc2d0 --- /dev/null +++ b/spec/if/rtems/scheduler/ident.yml @@ -0,0 +1,47 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Identifies a scheduler instance by its name. +copyrights: +- Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${../types/name:/name} ${.:/params[0]/name} + - ${../types/id:/name} *${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_ident +notes: | + The scheduler name is determined by the scheduler configuration. +params: +- description: is the scheduler name. + dir: null + name: name +- description: | + is the pointer to an object identifier variable. The identifier of the + scheduler instance 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/successful:/name} + - description: | + The ${.:/params[1]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The scheduler name was invalid. + value: ${../status/invalid-name:/name} +type: interface diff --git a/spec/if/rtems/scheduler/map-priority-from-posix.yml b/spec/if/rtems/scheduler/map-priority-from-posix.yml new file mode 100644 index 00000000..a0dbeb3c --- /dev/null +++ b/spec/if/rtems/scheduler/map-priority-from-posix.yml @@ -0,0 +1,53 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Maps a POSIX thread priority to the corresponding Classic API task priority. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - int ${.:/params[1]/name} + - ${../tasks/priority:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_map_priority_from_posix +notes: null +params: +- description: is the scheduler instance identifier. + dir: null + name: scheduler_id +- description: is the POSIX thread priority to map. + dir: null + name: posix_priority +- description: | + is the pointer to a Classic API task priority variable. The Classic API + task priority value corresponding to the specified POSIX thread priority + value will be stored in this variable, in case of a successful operation. + dir: out + name: priority +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../status/successful:/name} + - description: | + The ${.:/params[2]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The scheduler instance identifier was invalid. + value: ${../status/invalid-id:/name} + - description: | + The POSIX thread priority was invalid. + value: ${../status/invalid-priority:/name} +type: interface diff --git a/spec/if/rtems/scheduler/map-priority-to-posix.yml b/spec/if/rtems/scheduler/map-priority-to-posix.yml new file mode 100644 index 00000000..0418aec3 --- /dev/null +++ b/spec/if/rtems/scheduler/map-priority-to-posix.yml @@ -0,0 +1,53 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Maps a Classic API task priority to the corresponding POSIX thread priority. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${../tasks/priority:/name} ${.:/params[1]/name} + - int *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_map_priority_to_posix +notes: null +params: +- description: is the scheduler instance identifier. + dir: null + name: scheduler_id +- description: is the Classic API task priority to map. + dir: null + name: priority +- description: | + is the pointer to a POSIX thread priority variable. The POSIX thread + priority value corresponding to the specified Classic API task priority + value will be stored in this variable, in case of a successful operation. + dir: out + name: posix_priority +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../status/successful:/name} + - description: | + The ${.:/params[2]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The scheduler instance identifier was invalid. + value: ${../status/invalid-id:/name} + - description: | + The Classic API task priority was invalid. + value: ${../status/invalid-priority:/name} +type: interface diff --git a/spec/if/rtems/scheduler/remove-processor.yml b/spec/if/rtems/scheduler/remove-processor.yml new file mode 100644 index 00000000..5c816e73 --- /dev/null +++ b/spec/if/rtems/scheduler/remove-processor.yml @@ -0,0 +1,52 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Removes a processor from set of processors owned by the scheduler instance. +copyrights: +- Copyright (C) 2016, 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${/if/c/uint32_t:/name} ${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: ../tasks/header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_scheduler_remove_processor +notes: | + This directive shall be called from task context. It obtains and releases + the objects allocator lock. Removing a processor from a scheduler instance + is a complex operation that involves all tasks of the system. +params: +- description: is the scheduler instance identifier. + dir: null + name: scheduler_id +- description: is the index of the processor to remove. + dir: null + name: cpu_index +return: + return: null + return-values: + - description: | + The requested operation was successful. + value: ${../status/successful:/name} + - description: | + The scheduler instance identifier was invalid. + value: ${../status/invalid-id:/name} + - description: | + The processor was not owned by the specified scheduler instance. + value: ${../status/invalid-number:/name} + - description: | + The set of processors owned by the specified scheduler instance would + have been empty after the processor removal and there was at least one + non-idle task that used this scheduler instance as its home scheduler + instance. + value: ${../status/resource-in-use:/name} +type: interface diff --git a/spec/if/rtems/tasks/argument.yml b/spec/if/rtems/tasks/argument.yml new file mode 100644 index 00000000..d19a04ff --- /dev/null +++ b/spec/if/rtems/tasks/argument.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This type is used to represent task argument values. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: ${/if/impl/cpu/uint32ptr:/name} ${.:/name} + variants: [] +description: null +enabled-by: true +interface-type: typedef +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_argument +notes: | + The type is an architecture-specific unsigned integer type which is large + enough to represent pointer values and 32-bit unsigned integers. +type: interface diff --git a/spec/if/rtems/tasks/build.yml b/spec/if/rtems/tasks/build.yml new file mode 100644 index 00000000..cca05341 --- /dev/null +++ b/spec/if/rtems/tasks/build.yml @@ -0,0 +1,73 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Builds a task according to the task configuration. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: + default: + body: null + params: + - const ${config:/name} *${.:/params[0]/name} + - ${../types/id:/name} *${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_build +notes: null +params: +- description: is the task configuration. + dir: null + name: config +- description: | + is the pointer to an object identifier variable. The identifier of the new + task object 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/successful:/name} + - description: | + The ${.:/params[1]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The task name was invalid. + value: ${../status/invalid-name:/name} + - description: | + The initial task priority was invalid. + value: ${../status/invalid-priority:/name} + - description: | + The multiprocessing support was not configured. + value: ${../status/mp-not-configured:/name} + - description: | + There was no inactive task object available to build a new task. + value: ${../status/too-many:/name} + - description: | + In multiprocessing configurations, there was no inactive global object + available to build a new task. + value: ${../status/too-many:/name} + - description: | + The provided task storage area was too small. The task storage area + includes the task stack, the thread-local storage, and the floating point + context. + value: ${../status/unsatisfied:/name} + - description: | + One of the task create extensions failed to create the new task. + value: ${../status/unsatisfied:/name} + - description: | + In SMP configurations, the non-preemption mode was not supported. + value: ${../status/unsatisfied:/name} + - description: | + In SMP configurations, the interrupt level mode was not supported. + value: ${../status/unsatisfied:/name} +type: interface diff --git a/spec/if/rtems/tasks/config.yml b/spec/if/rtems/tasks/config.yml new file mode 100644 index 00000000..51f171ae --- /dev/null +++ b/spec/if/rtems/tasks/config.yml @@ -0,0 +1,75 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This structure defines a task configuration used to build a task. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +definition: +- default: + brief: | + This member is the name of the task. + definition: ${../types/name:/name} ${.:name} + description: null + kind: member + name: name + variants: [] +- default: + brief: | + This member is the initial priority of the task. + definition: ${priority:/name} ${.:name} + description: null + kind: member + name: initial_priority + variants: [] +- default: + brief: | + This member is task stack area begin address for the task. + definition: void *${.:name} + description: null + kind: member + name: stack_area + variants: [] +- default: + brief: | + This member is task stack area size in bytes for the task. + definition: ${/if/c/size_t:/name} ${.:name} + description: null + kind: member + name: stack_size + variants: [] +- default: + brief: | + This member is the function to free the task stack area if the task gets + deleted. + definition: void ( *${.:name} )( void * ) + description: null + kind: member + name: stack_free + variants: [] +- default: + brief: | + This member is set of initial modes of the task. + definition: ${../modes/mode:/name} ${.:name} + description: null + kind: member + name: initial_modes + variants: [] +- default: + brief: | + This member is set of attributes of the task. + definition: ${../attr/attribute:/name} ${.:name} + description: null + kind: member + name: attribute_set + variants: [] +definition-kind: typedef-only +description: null +enabled-by: true +interface-type: struct +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_config +notes: null +type: interface diff --git a/spec/if/rtems/tasks/configured-minimum-stack-size.yml b/spec/if/rtems/tasks/configured-minimum-stack-size.yml new file mode 100644 index 00000000..6cc12f58 --- /dev/null +++ b/spec/if/rtems/tasks/configured-minimum-stack-size.yml @@ -0,0 +1,19 @@ +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: '0' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_CONFIGURED_MINIMUM_STACK_SIZE +notes: null +type: interface diff --git a/spec/if/rtems/tasks/create.yml b/spec/if/rtems/tasks/create.yml new file mode 100644 index 00000000..09eeacf3 --- /dev/null +++ b/spec/if/rtems/tasks/create.yml @@ -0,0 +1,101 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Creates a task object. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/name:/name} ${.:/params[0]/name} + - ${priority:/name} ${.:/params[1]/name} + - ${/if/c/size_t:/name} ${.:/params[2]/name} + - ${../modes/mode:/name} ${.:/params[3]/name} + - ${../attr/attribute:/name} ${.:/params[4]/name} + - ${../types/id:/name} *${.:/params[5]/name} + return: ${../status/code:/name} + variants: [] +description: | + This directive creates a task which resides on the local node. It allocates + and initializes a TCB, a stack, and an optional floating point context area. + The mode parameter contains values which sets the task’s initial execution + mode. The RTEMS_FLOATING_POINT attribute should be specified if the created + task is to use a numeric coprocessor. For performance reasons, it is + recommended that tasks not using the numeric coprocessor should specify the + RTEMS_NO_FLOATING_POINT attribute. If the RTEMS_GLOBAL attribute is + specified, the task can be accessed from remote nodes. The task id, returned + in id, is used in other task related directives to access the task. When + created, a task is placed in the dormant state and can only be made ready to + execute using the directive rtems_task_start(). +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_create +notes: null +params: +- description: is the user-defined task name. + dir: null + name: name +- description: is the initial task priority. + dir: null + name: initial_priority +- description: is the task stack size in bytes. + dir: null + name: stack_size +- description: is the initial task mode. + dir: null + name: initial_modes +- description: is the task attribute set. + dir: null + name: attribute_set +- description: | + is the pointer to an object identifier variable. The object identifier of + the new task 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/successful:/name} + - description: | + The ${.:/params[5]/name} parameter was ${/if/c/null:/name}. + value: ${../status/invalid-address:/name} + - description: | + The task name was invalid. + value: ${../status/invalid-name:/name} + - description: | + The initial task priority was invalid. + value: ${../status/invalid-priority:/name} + - description: | + The multiprocessing support was not configured. + value: ${../status/mp-not-configured:/name} + - description: | + There was no inactive task object available to create a new task. + value: ${../status/too-many:/name} + - description: | + In multiprocessing configurations, there was no inactive global object + available to create a new global task. + value: ${../status/too-many:/name} + - description: | + There was not enough memory to allocate the task storage area. The task + storage area contains the task stack, the thread-local storage, and the + floating point context. + value: ${../status/unsatisfied:/name} + - description: | + One of the task create extensions failed to create the new task. + value: ${../status/unsatisfied:/name} + - description: | + In SMP configurations, the non-preemption mode was not supported. + value: ${../status/unsatisfied:/name} + - description: | + In SMP configurations, the interrupt level mode was not supported. + value: ${../status/unsatisfied:/name} +type: interface diff --git a/spec/if/rtems/tasks/current-priority.yml b/spec/if/rtems/tasks/current-priority.yml new file mode 100644 index 00000000..42d6a735 --- /dev/null +++ b/spec/if/rtems/tasks/current-priority.yml @@ -0,0 +1,21 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This constant is passed to {set-priority:/name}() when the caller wants to + obtain the current priority. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: '0' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_CURRENT_PRIORITY +notes: null +type: interface diff --git a/spec/if/rtems/tasks/delete.yml b/spec/if/rtems/tasks/delete.yml new file mode 100644 index 00000000..a91b13b2 --- /dev/null +++ b/spec/if/rtems/tasks/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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_delete +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/entry.yml b/spec/if/rtems/tasks/entry.yml new file mode 100644 index 00000000..2d8015b3 --- /dev/null +++ b/spec/if/rtems/tasks/entry.yml @@ -0,0 +1,20 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + This type defines the entry point of an RTEMS task. +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +- Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${task:/name} ( *${entry:/name} )( ${argument:/name} ) + variants: [] +description: null +enabled-by: true +interface-type: typedef +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_entry +notes: null +type: interface diff --git a/spec/if/rtems/tasks/exit.yml b/spec/if/rtems/tasks/exit.yml new file mode 100644 index 00000000..fb436eaa --- /dev/null +++ b/spec/if/rtems/tasks/exit.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: [] + return: ${/if/rtems/basedefs/no-return:/name} void + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_exit +notes: null +params: [] +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/get-affinity.yml b/spec/if/rtems/tasks/get-affinity.yml new file mode 100644 index 00000000..4d2d527a --- /dev/null +++ b/spec/if/rtems/tasks/get-affinity.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${/if/c/size_t:/name} ${.:/params[1]/name} + - ${/if/c/cpu_set_t:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_get_affinity +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: cpusetsize +- description: '%' + dir: null + name: cpuset +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/get-priority.yml b/spec/if/rtems/tasks/get-priority.yml new file mode 100644 index 00000000..c1ed6171 --- /dev/null +++ b/spec/if/rtems/tasks/get-priority.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${../types/id:/name} ${.:/params[1]/name} + - ${priority:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_get_priority +notes: null +params: +- description: '%' + dir: null + name: task_id +- description: '%' + dir: null + name: scheduler_id +- description: '%' + dir: null + name: priority +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/get-scheduler.yml b/spec/if/rtems/tasks/get-scheduler.yml new file mode 100644 index 00000000..99479b8d --- /dev/null +++ b/spec/if/rtems/tasks/get-scheduler.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${../types/id:/name} *${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_get_scheduler +notes: null +params: +- description: '%' + dir: null + name: task_id +- description: '%' + dir: null + name: scheduler_id +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/header.yml b/spec/if/rtems/tasks/header.yml new file mode 100644 index 00000000..ff75781a --- /dev/null +++ b/spec/if/rtems/tasks/header.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: header-file +links: +- role: interface-placement + uid: /if/domains/api +path: rtems/rtems/tasks.h +prefix: cpukit/include +type: interface diff --git a/spec/if/rtems/tasks/ident.yml b/spec/if/rtems/tasks/ident.yml new file mode 100644 index 00000000..9405b54e --- /dev/null +++ b/spec/if/rtems/tasks/ident.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/name:/name} ${.:/params[0]/name} + - ${/if/c/uint32_t:/name} ${.:/params[1]/name} + - ${../types/id:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_ident +notes: null +params: +- description: '%' + dir: null + name: name +- description: '%' + dir: null + name: node +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/initialization-table.yml b/spec/if/rtems/tasks/initialization-table.yml new file mode 100644 index 00000000..7191b628 --- /dev/null +++ b/spec/if/rtems/tasks/initialization-table.yml @@ -0,0 +1,67 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: +- default: + brief: '%' + definition: ${../types/name:/name} ${.:name} + description: '%' + kind: member + name: name + variants: [] +- default: + brief: '%' + definition: ${/if/c/size_t:/name} ${.:name} + description: '%' + kind: member + name: stack_size + variants: [] +- default: + brief: '%' + definition: ${priority:/name} ${.:name} + description: '%' + kind: member + name: initial_priority + variants: [] +- default: + brief: '%' + definition: ${../attr/attribute:/name} ${.:name} + description: '%' + kind: member + name: attribute_set + variants: [] +- default: + brief: '%' + definition: ${entry:/name} ${.:name} + description: '%' + kind: member + name: entry_point + variants: [] +- default: + brief: '%' + definition: ${../modes/mode:/name} ${.:name} + description: '%' + kind: member + name: mode_set + variants: [] +- default: + brief: '%' + definition: ${argument:/name} ${.:name} + description: '%' + kind: member + name: argument + variants: [] +definition-kind: typedef-only +description: null +enabled-by: true +interface-type: struct +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_initialization_tasks_table +notes: null +type: interface diff --git a/spec/if/rtems/tasks/is-suspended.yml b/spec/if/rtems/tasks/is-suspended.yml new file mode 100644 index 00000000..baa244bb --- /dev/null +++ b/spec/if/rtems/tasks/is-suspended.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_is_suspended +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/iterate.yml b/spec/if/rtems/tasks/iterate.yml new file mode 100644 index 00000000..837b35a2 --- /dev/null +++ b/spec/if/rtems/tasks/iterate.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${visitor:/name} ${.:/params[0]/name} + - void *${.:/params[1]/name} + return: void + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_iterate +notes: null +params: +- description: '%' + dir: null + name: visitor +- description: '%' + dir: null + name: arg +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/maximum-priority.yml b/spec/if/rtems/tasks/maximum-priority.yml new file mode 100644 index 00000000..90d9a2de --- /dev/null +++ b/spec/if/rtems/tasks/maximum-priority.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${/if/impl/maximum-priority:/name}() + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_MAXIMUM_PRIORITY +notes: null +type: interface diff --git a/spec/if/rtems/tasks/minimum-priority.yml b/spec/if/rtems/tasks/minimum-priority.yml new file mode 100644 index 00000000..0457f66b --- /dev/null +++ b/spec/if/rtems/tasks/minimum-priority.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: '1' + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_MINIMUM_PRIORITY +notes: null +type: interface diff --git a/spec/if/rtems/tasks/minimum-stack-size.yml b/spec/if/rtems/tasks/minimum-stack-size.yml new file mode 100644 index 00000000..810784fe --- /dev/null +++ b/spec/if/rtems/tasks/minimum-stack-size.yml @@ -0,0 +1,19 @@ +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: ${/if/impl/stack/minimum-size:/name} + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_MINIMUM_STACK_SIZE +notes: null +type: interface diff --git a/spec/if/rtems/tasks/mode.yml b/spec/if/rtems/tasks/mode.yml new file mode 100644 index 00000000..8044d9ea --- /dev/null +++ b/spec/if/rtems/tasks/mode.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../modes/mode:/name} ${.:/params[0]/name} + - ${../modes/mode:/name} ${.:/params[1]/name} + - ${../modes/mode:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_mode +notes: null +params: +- description: '%' + dir: null + name: mode_set +- description: '%' + dir: null + name: mask +- description: '%' + dir: null + name: previous_mode_set +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/no-priority.yml b/spec/if/rtems/tasks/no-priority.yml new file mode 100644 index 00000000..58d6d88b --- /dev/null +++ b/spec/if/rtems/tasks/no-priority.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${current-priority:/name} + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_NO_PRIORITY +notes: null +type: interface diff --git a/spec/if/rtems/tasks/priority.yml b/spec/if/rtems/tasks/priority.yml new file mode 100644 index 00000000..3a5a39b2 --- /dev/null +++ b/spec/if/rtems/tasks/priority.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${/if/c/uint32_t:/name} ${.:/name} + variants: [] +description: null +enabled-by: true +interface-type: typedef +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_priority +notes: null +type: interface diff --git a/spec/if/rtems/tasks/restart.yml b/spec/if/rtems/tasks/restart.yml new file mode 100644 index 00000000..8ef2c89c --- /dev/null +++ b/spec/if/rtems/tasks/restart.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${argument:/name} ${.:/params[1]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_restart +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: argument +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/resume.yml b/spec/if/rtems/tasks/resume.yml new file mode 100644 index 00000000..f332efaa --- /dev/null +++ b/spec/if/rtems/tasks/resume.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_resume +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/self-define.yml b/spec/if/rtems/tasks/self-define.yml new file mode 100644 index 00000000..67f1ff45 --- /dev/null +++ b/spec/if/rtems/tasks/self-define.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${/if/impl/object/id-of-self:/name} + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_SELF +notes: null +type: interface diff --git a/spec/if/rtems/tasks/self.yml b/spec/if/rtems/tasks/self.yml new file mode 100644 index 00000000..5b6af1e0 --- /dev/null +++ b/spec/if/rtems/tasks/self.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: [] + return: ${../types/id:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_self +notes: null +params: [] +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/set-affinity.yml b/spec/if/rtems/tasks/set-affinity.yml new file mode 100644 index 00000000..f051aaae --- /dev/null +++ b/spec/if/rtems/tasks/set-affinity.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${/if/c/size_t:/name} ${.:/params[1]/name} + - const ${/if/c/cpu_set_t:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_set_affinity +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: cpusetsize +- description: '%' + dir: null + name: cpuset +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/set-priority.yml b/spec/if/rtems/tasks/set-priority.yml new file mode 100644 index 00000000..43cd6db9 --- /dev/null +++ b/spec/if/rtems/tasks/set-priority.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${priority:/name} ${.:/params[1]/name} + - ${priority:/name} *${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_set_priority +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: new_priority +- description: '%' + dir: null + name: old_priority +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/set-scheduler.yml b/spec/if/rtems/tasks/set-scheduler.yml new file mode 100644 index 00000000..9eab6de6 --- /dev/null +++ b/spec/if/rtems/tasks/set-scheduler.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${../types/id:/name} ${.:/params[1]/name} + - ${priority:/name} ${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_set_scheduler +notes: null +params: +- description: '%' + dir: null + name: task_id +- description: '%' + dir: null + name: scheduler_id +- description: '%' + dir: null + name: priority +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/start.yml b/spec/if/rtems/tasks/start.yml new file mode 100644 index 00000000..3838b2c7 --- /dev/null +++ b/spec/if/rtems/tasks/start.yml @@ -0,0 +1,38 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + - ${entry:/name} ${.:/params[1]/name} + - ${argument:/name} ${.:/params[2]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_start +notes: null +params: +- description: '%' + dir: null + name: id +- description: '%' + dir: null + name: entry_point +- description: '%' + dir: null + name: argument +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/suspend.yml b/spec/if/rtems/tasks/suspend.yml new file mode 100644 index 00000000..298064e6 --- /dev/null +++ b/spec/if/rtems/tasks/suspend.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/id:/name} ${.:/params[0]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_suspend +notes: null +params: +- description: '%' + dir: null + name: id +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/task.yml b/spec/if/rtems/tasks/task.yml new file mode 100644 index 00000000..a45aae44 --- /dev/null +++ b/spec/if/rtems/tasks/task.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: void ${.:/name} + variants: [] +description: null +enabled-by: true +interface-type: typedef +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task +notes: null +type: interface diff --git a/spec/if/rtems/tasks/tcb.yml b/spec/if/rtems/tasks/tcb.yml new file mode 100644 index 00000000..558d9e90 --- /dev/null +++ b/spec/if/rtems/tasks/tcb.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: struct _Thread_Control ${.:/name} + variants: [] +description: null +enabled-by: true +interface-type: typedef +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_tcb +notes: null +type: interface diff --git a/spec/if/rtems/tasks/visitor.yml b/spec/if/rtems/tasks/visitor.yml new file mode 100644 index 00000000..4de9e028 --- /dev/null +++ b/spec/if/rtems/tasks/visitor.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${/if/c/bool:/name}( *${.:/name} )( ${tcb:/name} *, void * ) + variants: [] +description: null +enabled-by: true +interface-type: typedef +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_visitor +notes: null +type: interface diff --git a/spec/if/rtems/tasks/wake-after.yml b/spec/if/rtems/tasks/wake-after.yml new file mode 100644 index 00000000..24592db6 --- /dev/null +++ b/spec/if/rtems/tasks/wake-after.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/interval:/name} ${.:/params[0]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_wake_after +notes: null +params: +- description: '%' + dir: null + name: ticks +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/wake-when.yml b/spec/if/rtems/tasks/wake-when.yml new file mode 100644 index 00000000..f8920b87 --- /dev/null +++ b/spec/if/rtems/tasks/wake-when.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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: + body: null + params: + - ${../types/time-of-day:/name} *${.:/params[0]/name} + return: ${../status/code:/name} + variants: [] +description: null +enabled-by: true +interface-type: function +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: rtems_task_wake_when +notes: null +params: +- description: '%' + dir: null + name: time_buffer +return: + return: null + return-values: [] +type: interface diff --git a/spec/if/rtems/tasks/yield-processor.yml b/spec/if/rtems/tasks/yield-processor.yml new file mode 100644 index 00000000..1f62d810 --- /dev/null +++ b/spec/if/rtems/tasks/yield-processor.yml @@ -0,0 +1,19 @@ +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, 2017 On-Line Applications Research Corporation (OAR) +definition: + default: ${/if/impl/watchdog/no-timeout:/name} + variants: [] +description: null +enabled-by: true +interface-type: define +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: /groups/api/classic/tasks +name: RTEMS_YIELD_PROCESSOR +notes: null +type: interface |