summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/src/__usrenv.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/libcsupport/src/__usrenv.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/cpukit/libcsupport/src/__usrenv.c b/cpukit/libcsupport/src/__usrenv.c
index 611e0d7a92..cd191f33ea 100644
--- a/cpukit/libcsupport/src/__usrenv.c
+++ b/cpukit/libcsupport/src/__usrenv.c
@@ -24,6 +24,8 @@
#include <sys/stat.h>
#include <rtems/libio_.h>
+#include <rtems/score/percpu.h>
+#include <rtems/score/thread.h>
static int null_handler_open(
rtems_libio_t *iop,
@@ -249,4 +251,14 @@ rtems_user_env_t rtems_global_user_env = {
.umask = S_IWGRP | S_IWOTH
};
-pthread_key_t rtems_current_user_env_key;
+rtems_user_env_t *rtems_current_user_env_get(void)
+{
+ Thread_Control *executing = _Thread_Get_executing();
+ rtems_user_env_t *env = executing->user_environment;
+
+ if (env == NULL) {
+ return &rtems_global_user_env;
+ }
+
+ return env;
+}