RFC Eliminate Use of Task Variables in cpukit
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Mar 7 06:08:54 UTC 2014
On 2014-03-06 20:27, Joel Sherrill wrote:
> + cpukit/libcsupport/src/privateenv.c
> - Uses rtems_global_user_env. Switch to POSIX Keys?
We can use POSIX keys, or do some optimization:
Since applications using a file system will very likely also enable the Newlib
re-entrancy we can re-use the __getreent() function for the file system
environment. In newlib_create_hook() we create a structure
struct S {
struct _reent reent;
rtems_user_env_t *env;
}
and assign it to thread->libc_reent;
The file system can then use
(struct S *) __getreent()
to get its file system environment. This approach allows a slightly faster
lock-up compared to POSIX keys and uses less memory.
+ cpukit/score/include/rtems/score/threadimpl.h
/**
* Self for the GNU Ada Run-Time
*/
SCORE_EXTERN void *rtems_ada_self;
This should be replaced with a function:
void *rtems_ada_self(void)
{
return _Thread_Get_executing()->rtems_ada_self;
}
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list