diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-02-14 19:09:56 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-02-25 07:18:26 +0100 |
commit | ba74ebde7461b28bf0261523d4e91e7c0e17b622 (patch) | |
tree | 0929ec50a724db8418a8d1f1b6a5d8d4c847f1dd /cpukit/include/rtems/score | |
parent | config: Add _SMP_Is_enabled (diff) | |
download | rtems-ba74ebde7461b28bf0261523d4e91e7c0e17b622.tar.bz2 |
libio: Add POSIX user environment pointer to TCB
The IO library used a POSIX key to store an optional POSIX user
environment pointer. This pulled in the POSIX keys support in every
application configuration. Add a user environment pointer to the thread
control block (TCB) instead. Applications which do not need the POSIX
user environment will just get an overhead of one pointer per thread.
Close #3882.
Diffstat (limited to 'cpukit/include/rtems/score')
-rw-r--r-- | cpukit/include/rtems/score/interr.h | 2 | ||||
-rw-r--r-- | cpukit/include/rtems/score/thread.h | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/cpukit/include/rtems/score/interr.h b/cpukit/include/rtems/score/interr.h index e57c415eed..2f449deedb 100644 --- a/cpukit/include/rtems/score/interr.h +++ b/cpukit/include/rtems/score/interr.h @@ -197,7 +197,7 @@ typedef enum { INTERNAL_ERROR_BAD_THREAD_DISPATCH_ENVIRONMENT = 31, INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILED = 32, INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILED = 33, - INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILED = 34, + /* INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILED = 34, */ /* INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILED = 35, */ INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILED = 36, INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILED = 37, diff --git a/cpukit/include/rtems/score/thread.h b/cpukit/include/rtems/score/thread.h index 3e2e0638f8..2e7380f99a 100644 --- a/cpukit/include/rtems/score/thread.h +++ b/cpukit/include/rtems/score/thread.h @@ -43,6 +43,8 @@ #include <rtems/score/processormask.h> #endif +struct rtems_user_env_t; + struct _pthread_cleanup_context; struct Per_CPU_Control; @@ -859,6 +861,11 @@ struct _Thread_Control { Thread_Capture_control Capture; /** + * @brief Pointer to an optional thread-specific POSIX user environment. + */ + struct rtems_user_env_t *user_environment; + + /** * @brief LIFO list of POSIX cleanup contexts. */ struct _pthread_cleanup_context *last_cleanup_context; |