summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-10 16:35:09 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-09-17 17:42:25 +0200
commitc312f3110ebd6b38c3971910fe034b6c97ebb28c (patch)
treedcc82c92d7088b1d9c2e12e1ece1f6b705f49a05 /cpukit/include/rtems/score
parentrtems: Add RTEMS_ALIGN_UP() (diff)
downloadrtems-c312f3110ebd6b38c3971910fe034b6c97ebb28c.tar.bz2
CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
Diffstat (limited to 'cpukit/include/rtems/score')
-rw-r--r--cpukit/include/rtems/score/interr.h3
-rw-r--r--cpukit/include/rtems/score/thread.h10
2 files changed, 12 insertions, 1 deletions
diff --git a/cpukit/include/rtems/score/interr.h b/cpukit/include/rtems/score/interr.h
index 2f449deedb..1371e55653 100644
--- a/cpukit/include/rtems/score/interr.h
+++ b/cpukit/include/rtems/score/interr.h
@@ -203,7 +203,8 @@ typedef enum {
INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILED = 37,
INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT = 38,
INTERNAL_ERROR_ARC4RANDOM_GETENTROPY_FAIL = 39,
- INTERNAL_ERROR_NO_MEMORY_FOR_PER_CPU_DATA = 40
+ INTERNAL_ERROR_NO_MEMORY_FOR_PER_CPU_DATA = 40,
+ INTERNAL_ERROR_TOO_LARGE_TLS_SIZE = 41
} Internal_errors_Core_list;
typedef CPU_Uint32ptr Internal_errors_t;
diff --git a/cpukit/include/rtems/score/thread.h b/cpukit/include/rtems/score/thread.h
index 1daf6143f9..1388744548 100644
--- a/cpukit/include/rtems/score/thread.h
+++ b/cpukit/include/rtems/score/thread.h
@@ -954,6 +954,16 @@ extern const size_t _Thread_Initial_thread_count;
extern const size_t _Thread_Maximum_name_size;
/**
+ * @brief If this constant 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.
+ *
+ * This value is provided via <rtems/confdefs.h>.
+ */
+extern const size_t _Thread_Maximum_TLS_size;
+
+/**
* @brief The configured thread control block.
*
* This type is defined in <rtems/confdefs.h> and depends on the application