summaryrefslogtreecommitdiffstats
path: root/spec/rtems/task/if/create.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/task/if/create.yml')
-rw-r--r--spec/rtems/task/if/create.yml101
1 files changed, 101 insertions, 0 deletions
diff --git a/spec/rtems/task/if/create.yml b/spec/rtems/task/if/create.yml
new file mode 100644
index 00000000..7baea120
--- /dev/null
+++ b/spec/rtems/task/if/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:
+ - ${../../type/if/name:/name} ${.:/params[0]/name}
+ - ${priority:/name} ${.:/params[1]/name}
+ - ${/c/if/size_t:/name} ${.:/params[2]/name}
+ - ${../../mode/if/mode:/name} ${.:/params[3]/name}
+ - ${../../attr/if/attribute:/name} ${.:/params[4]/name}
+ - ${../../type/if/id:/name} *${.:/params[5]/name}
+ return: ${../../status/if/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: group
+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/if/successful:/name}
+ - description: |
+ The ${.:/params[5]/name} parameter was ${/c/if/null:/name}.
+ value: ${../../status/if/invalid-address:/name}
+ - description: |
+ The task name was invalid.
+ value: ${../../status/if/invalid-name:/name}
+ - description: |
+ The initial task priority was invalid.
+ value: ${../../status/if/invalid-priority:/name}
+ - description: |
+ The multiprocessing support was not configured.
+ value: ${../../status/if/mp-not-configured:/name}
+ - description: |
+ There was no inactive task object available to create a new task.
+ value: ${../../status/if/too-many:/name}
+ - description: |
+ In multiprocessing configurations, there was no inactive global object
+ available to create a new global task.
+ value: ${../../status/if/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/if/unsatisfied:/name}
+ - description: |
+ One of the task create extensions failed to create the new task.
+ value: ${../../status/if/unsatisfied:/name}
+ - description: |
+ In SMP configurations, the non-preemption mode was not supported.
+ value: ${../../status/if/unsatisfied:/name}
+ - description: |
+ In SMP configurations, the interrupt level mode was not supported.
+ value: ${../../status/if/unsatisfied:/name}
+type: interface