diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-10-19 16:51:29 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-10-28 19:51:56 +0200 |
commit | 3207e0363c154fc517371095a0e3eab58586677d (patch) | |
tree | 3b9df6f33f400804fbc61dee08a66fa5bdfd7265 | |
parent | spec: Specify SMP EDF scheduler set affinity (diff) | |
download | rtems-central-3207e0363c154fc517371095a0e3eab58586677d.tar.bz2 |
spec: Add idle task stack allocator option
5 files changed, 97 insertions, 0 deletions
diff --git a/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml b/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml new file mode 100644 index 00000000..7f2586e9 --- /dev/null +++ b/spec/acfg/constraint/init-task-stack-allocator-for-idle.yml @@ -0,0 +1,12 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: requirement-refinement + uid: /req/usage-constraints +rationale: null +text: | + The value of the application configuration option shall be defined to a valid + function pointer of the type ``void *( *allocate )( uint32_t, size_t )``. +type: constraint diff --git a/spec/acfg/if/task-stack-allocator-for-idle.yml b/spec/acfg/if/task-stack-allocator-for-idle.yml new file mode 100644 index 00000000..c2d42aaf --- /dev/null +++ b/spec/acfg/if/task-stack-allocator-for-idle.yml @@ -0,0 +1,30 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +appl-config-option-type: initializer +copyrights: +- Copyright (C) 2021 On-Line Applications Research Corporation (OAR) +default-value: | + The default value is ``_Stack_Allocator_allocate_for_idle_default``, which + indicates that IDLE task stacks will be allocated from an area statically + allocated by ``<rtems/confdefs.h>``. +description: | + The value of this configuration option is the address for the stack allocator + allocate handler used to allocate the task stack of each + ${/glossary/idletask:/term}. +enabled-by: true +index-entries: +- task stack allocator for IDLE tasks +interface-type: appl-config-option +links: +- role: requirement-refinement + uid: ../req/task-stack-allocator-for-idle +- role: appl-config-group-member + uid: group-stackalloc +- role: constraint + uid: ../constraint/init-task-stack-allocator-for-idle +name: CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE +notes: | + This configuration option is independent of the other thread stack allocator + configuration options. It is assumed that any memory allocated for the stack + of an ${/glossary/idletask:/term} will not be from the RTEMS Workspace or the + memory statically allocated by default. +type: interface diff --git a/spec/acfg/req/task-stack-allocator-for-idle.yml b/spec/acfg/req/task-stack-allocator-for-idle.yml new file mode 100644 index 00000000..26d303f0 --- /dev/null +++ b/spec/acfg/req/task-stack-allocator-for-idle.yml @@ -0,0 +1,15 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +links: +- role: requirement-refinement + uid: /req/applconfig +non-functional-type: interface-requirement +rationale: null +references: [] +requirement-type: non-functional +text: | + The system shall provide an application configuration option which defines + the stack allocator allocate handler for an ${/glossary/idletask:/term}. +type: requirement diff --git a/spec/rtems/config/if/get-stack-allocate-for-idle-hook.yml b/spec/rtems/config/if/get-stack-allocate-for-idle-hook.yml new file mode 100644 index 00000000..f95c029c --- /dev/null +++ b/spec/rtems/config/if/get-stack-allocate-for-idle-hook.yml @@ -0,0 +1,28 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +brief: | + Gets the thread stack allocator allocate hook used to allocate the stack of + each ${/glossary/idletask:/term} configured for this application. +copyrights: +- Copyright (C) 2021 On-Line Applications Research Corporation (OAR) +definition: + default: ${/score/stack/if/allocator-allocate-for-idle:/name} + variants: [] +description: null +enabled-by: true +index-entries: [] +interface-type: macro +links: +- role: interface-placement + uid: header +- role: interface-ingroup + uid: group +name: rtems_configuration_get_stack_allocate_for_idle_hook +notes: | + See ${/acfg/if/task-stack-allocator-for-idle:/name}. +params: [] +return: + return: | + Returns the thread stack allocator allocate hook used to allocate the stack + of each ${/glossary/idletask:/term} configured for this application. + return-values: [] +type: interface diff --git a/spec/score/stack/if/allocator-allocate-for-idle.yml b/spec/score/stack/if/allocator-allocate-for-idle.yml new file mode 100644 index 00000000..17666bdf --- /dev/null +++ b/spec/score/stack/if/allocator-allocate-for-idle.yml @@ -0,0 +1,12 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +index-entries: [] +interface-type: unspecified +links: +- role: interface-placement + uid: header +name: _Stack_Allocator_allocate_for_idle +references: [] +type: interface |