summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-17 18:12:44 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-17 18:14:23 +0200
commita5fe9aad19fe003748e0100243c14da5fb9a7d66 (patch)
treefca9423478f925cb637592e69fd4426a3e8c4aef
parent5642fe5d4b9f3755483c27eef5b91ee5f3d232e9 (diff)
downloadrtems-docs-a5fe9aad19fe003748e0100243c14da5fb9a7d66.tar.bz2
c-user: CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
Document this application configuration option. Close #4074.
-rw-r--r--c-user/config/classic-api.rst44
1 files changed, 44 insertions, 0 deletions
diff --git a/c-user/config/classic-api.rst b/c-user/config/classic-api.rst
index f0fbe6f..962aa40 100644
--- a/c-user/config/classic-api.rst
+++ b/c-user/config/classic-api.rst
@@ -366,6 +366,50 @@ NOTES:
the addition of a new configuration parameter to specify the number of
tasks which enable floating point support.
+.. index:: CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
+
+.. _CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE:
+
+CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
+-------------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE``
+
+OPTION TYPE:
+ This configuration option is an integer define.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+VALUE CONSTRAINTS:
+ The value of this configuration option shall be greater than or equal to 0
+ and less than or equal to `SIZE_MAX <https://en.cppreference.com/w/c/types/limits>`_.
+
+DESCRIPTION:
+ If the value of this configuration option is greater than zero, then it
+ defines the maximum thread-local storage size, otherwise the thread-local
+ storage size is defined by the linker depending on the thread-local storage
+ objects used by the application in the statically-linked executable.
+
+NOTES:
+ This configuration option can be used to reserve space for the dynamic linking
+ of modules with thread-local storage objects.
+
+ If the thread-local storage size defined by the thread-local storage
+ objects used by the application in the statically-linked executable is greater
+ than a non-zero value of this configuration option, then a fatal error will
+ occur during system initialization.
+
+ Use :c:func:`RTEMS_ALIGN_UP` and
+ :c:macro:`RTEMS_TASK_STORAGE_ALIGNMENT` to adjust the size to meet the
+ minimum alignment requirement of a thread-local storage area.
+
+ The actual thread-local storage size is determined when the application
+ executable is linked. The ``rtems-exeinfo`` command line tool included in
+ the RTEMS Tools can be used to obtain the thread-local storage size and
+ alignment of an application executable.
+
.. index:: CONFIGURE_MAXIMUM_TIMERS
.. _CONFIGURE_MAXIMUM_TIMERS: