| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The RTEMS build of Newlib includes implementations of all exec*()
variants. They rely on the _execve() support method. RTEMS already
had this and it returned ENOSYS. There is no functional change.
closes #2537.
|
|
|
|
| |
Update #2502.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
These were not implemented and it does not appear that they were
ever officially part of an approved POSIX standard. They were
likely part of the Draft 8 of POSIX 1003.1b that RTEMS pthreads
were initially based upon.
closes #2531.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Avoid uninitialized ramdisk::free_at_delete_request. The error was
visible in sporadic libtests/block01 failures.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This avoids potential dead code in _Thread_Handler(). It gets rid of
the dangerous function pointer casts.
Update #2514.
|
| |
|
|
|
|
| |
Update #2514.
|
|
|
|
|
|
| |
This simplifies the global construction.
Update #2514.
|
|
|
|
| |
The permission is check by the upper layer.
|
|
|
|
| |
updates #2452.
|
|
|
|
| |
updates #2446.
|
|
|
|
|
|
|
|
|
| |
Under certain conditions a new watchdog was inserted with a wrong
and very large delta interval due to a wrong iterator update.
Bug was introduced by 1ccbd052910ed16131c74b0d5595c8a94066942d.
Close #2507.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.
In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:
- 16 32-bit integers were allocated.
- A total of 64 bytes per task per thread.
This is especially critical in low memory and safety-critical applications.
They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.
Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.
updates #2493.
|
|
|
|
|
|
|
|
|
| |
Under certain conditions a new watchdog was inserted with a wrong and
very large delta interval due to an incomplete iterator update.
Bug was introduced by 1ccbd052910ed16131c74b0d5595c8a94066942d.
Close #2501.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Store the unblock signals to exploit the zero-initialization of the
thread control block.
|
|
|
|
| |
This reduces the code size of the thread initialization.
|
| |
|
|
|
|
|
|
|
| |
Remove the thread action handler parameter from
_Thread_Action_initialize() and instead set it later in
_Thread_Add_post_switch_action(). This avoids a dependency on the
thread action handler via the thread initialization.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make rtems_initialize_data_structures(),
rtems_initialize_before_drivers() and rtems_initialize_device_drivers()
static. Rename rtems_initialize_start_multitasking() to
rtems_initialize_executive() and call the registered system
initialization handlers in this function. Add system initialization API
available via #include <rtems/sysinit.h>. Update the documentation
accordingly.
This is no functional change, only the method to call the existing
initialization routines changes. Instead of direct function calls a
table of function pointers contained in the new RTEMS system
initialization linker set is used. This table looks like this (the
actual addresses depend on the target).
nm *.exe | grep _Linker | sort
0201a2d0 D _Linker_set__Sysinit_begin
0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize
0201a2d4 D _Linker_set__Sysinit_bsp_start
0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures
0201a2dc D _Linker_set__Sysinit_bsp_libc_init
0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers
0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook
0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers
0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook
0201a2f0 D _Linker_set__Sysinit_end
Add test sptests/spsysinit01.
Update #2408.
|
|
|
|
|
|
| |
Use the bsp_predriver_hook() instead.
Update #2408.
|
|
|
|
|
|
|
| |
Drop the superfluous parenthesis since this confuses the C++ compiler of
some GCC versions. See also
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67064
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Close #2477.
|
|
|
|
|
|
|
| |
The expensive heap walks are superfluous due to the heap protection
enabled via RTEMS_DEBUG.
Update #2477.
|
| |
|
| |
|
|
|
|
|
| |
This function is used by Newlib since 2013-07-09 (Git commit
9b51cd8c6b9cdd067d9648a7ab952884019c56a5).
|
| |
|
|
|
|
|
| |
This structure is available in Newlib since 2013-11-29 (Git commit
a534dfd26e765047621acd0eda656ded886e7108).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem exists for both RTEMS untar implementations and their
variants: Untar_FromMemory(), Untar_FromFile() and rtems_tarfs_load().
If filesystem object already exists at extracted directory path
then if it is directory, creation is ignored. Attempt
to delete/unlink object and make directory is tried for other cases.
This simple approach problem reported in ticket fixes #2413.
Behavior follows GNU tar and BSD tar practice for directories
but much more work is required to achieve full semantics
of the full featured tar implementation still.
|
|
|
|
| |
Required by new network stack.
|
|
|
|
| |
Required by new network stack.
|
|
|
|
| |
Required by new network stack.
|
|
|
|
| |
Required by new network stack.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We must not load registers (e.g. PSR) from the heir context area before
the heir stopped execution.
With this patch the write to PSR is divided into two steps. We first update
the current window pointer and then we restore the status registers and
enable traps. This allows us to move the first write to PSR to be before
the write to WIM, as there is now no risk that we get an interrupt where
the CWP and WIM would be inconsistent. We only need to make sure that we
do not use any of the non-global registers or instructions that affects
CWP for three instructions after the write.
In the earlier code the non-global %o1 register was used right after the
write to PSR, which required the use of three nop:s.
|