| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This file had no header, copyright, or license. Based on git history,
added appropriate copyright and license.
|
|
|
|
|
| |
These files had no header, copyright, or licenses. Based on git history,
added appropriate copyright and license.
|
|
|
|
|
| |
These files had no file header, copyright, or license. Based on git
history, added appropriate copyright and license.
|
|
|
|
| |
Close #4644.
|
|
|
|
|
|
|
| |
In contrast to rtems_shell_main_loop(), this new function does not
perform all sorts of initialization based on environment settings. For
example, due to the use of isatty() in rtems_shell_main_loop() it is
impossible to run an interactive shell through a socket connection.
|
|
|
|
| |
This was requested to be executed prior to relicensing to BSD-2.
|
|
|
|
|
|
| |
Permission received from Krzysztof Miesowicz.
Updates #3053.
|
|
|
|
|
|
| |
Permission received from Petr Benes
Updates #3053.
|
| |
|
| |
|
|
|
|
| |
Updates #3053.
|
|
|
|
| |
Updates #3053.
|
| |
|
|
|
|
|
|
|
| |
Add SMP-specifc SMP_FATAL_MULTITASKING_START_ON_NOT_ONLINE_PROCESSOR
fatal error. This fatal error helps to diagnose a broken SMP startup
sequence. Without this error a context switch using the NULL pointer
for the thread control block happens which may be difficult to debug.
|
|
|
|
|
|
|
|
|
| |
Add support to record scheduler operations. This support is especially
important for tests in SMP configurations since the thread switch extension is
quite difficult to use due to the asynchronous nature of thread dispatching.
In contrast, the scheduler operations occur normally in a deterministic order.
Update #3716.
|
|
|
|
|
|
|
| |
This function may be used to burn a couple of processor cycles with
minimum impact on the system bus. It may be used in busy wait loops.
Since it is a global function, it is possible to wrap it in device
driver test code.
|
|
|
|
|
|
| |
A default argument shall be defined only once.
Close #4632.
|
|
|
|
|
|
|
|
| |
Restrict the affinity set to the set of online processors. Make sure
the affinity set for an interrupt vector contains at least one online
processor.
Update #3269.
|
|
|
|
|
|
| |
Use the same form of IMD in all copyright lines
Update #4625.
|
|
|
|
| |
Updates #4625.
|
|
|
|
| |
Updates #4625.
|
|
|
|
| |
Updates #3053.
|
|
|
|
| |
Updates #3053.
|
|
|
|
| |
Updates #3053.
|
|
|
|
| |
Updates #3053.
|
|
|
|
|
|
| |
Remove previous adjtime() implementation.
Update #2348.
|
|
|
|
|
|
|
| |
Do not initialize Thread_Control::libc_reent if
CONFIGURE_DISABLE_NEWLIB_REENTRANCY is defined. This helps to catch errors
with a NULL pointer exception rather than a corruption of the thread control
block.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment the line discipline start function (l_start) has no
possibility to get feedback about the number of characters that have
been sent. This patch passes that information via an additional
parameter.
The change might trigger a warning on existing code because of a pointer
mismatch but it shouldn't break it. An existing function with the old
API will just ignore the additional parameter.
Update #4493
|
|
|
|
|
|
|
|
|
|
|
| |
GCC versions prior to 6.1 used a RTEMS thread model based on
rtems_gxx_*() functions. GCC version 6.1 or later uses the
self-contained synchronization objects of Newlib <sys/lock.h> for the
RTEMS thread model.
Remove the obsolete implementation.
Close #3143.
|
|
|
|
| |
Update #4572.
|
|
|
|
|
| |
Move the data structure definitions closer to the directives which use
them.
|
|
|
|
|
| |
If RTEMS_SMP is not defined, then Doxygen adds the comments intended for
conditional the lock member to the next member.
|
|
|
|
|
|
|
| |
In _Workspace_Initialize_for_one_area(), properly check if there is enough
free memory available for the configured workspace size.
The bug was introduced by commit 3d0620b607ff6459fec9d30efc1e0589bbd010f9.
|
|
|
|
| |
Close #4566.
|
|
|
|
|
|
| |
Since the previous Interrupt Manager Extension API moved to the
Interrupt Manager, we can move the interfaces to <rtems/rtems/intr.h> so
that they are available via #include <rtems.h>.
|
|
|
|
|
|
| |
Move all rtems_scheduler_* directives to the new header file
<rtems/rtems/scheduler.h>. Add a Scheduler Manager API and
implementation group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BSPs provide memory for the separate C Program Heap initialization
via _Memory_Get(). Most BSPs provide exactly one memory area. Only two
BSPs provide more than one memory area (arm/altera-cyclone-v and
bsps/powerpc/mpc55xxevb). Only if more than one memory area is
provided, there is a need to use _Heap_Extend(). Provide two
implementations to initialize the separate C Program Heap and let the
BSP select one of the implementations based on the number of provided
memory areas. This gets rid of a dependency on _Heap_Extend(). It
also avoids dead code sections for most BSPs.
Change licence to BSD-2-Clause according to file history.
Update #3053.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The BSPs provide memory for the workspace initialization via
_Memory_Get(). Most BSPs provide exactly one memory area. Only two
BSPs provide more than one memory area (arm/altera-cyclone-v and
bsps/powerpc/mpc55xxevb). Only if more than one memory area is
provided, there is a need to use _Heap_Extend(). Provide two
implementations to initialize the workspace handler and let the BSP
select one of the implementations based on the number of provided memory
areas. This gets rid of a dependency on _Heap_Extend(). It also avoids
dead code sections for most BSPs.
|
|
|
|
| |
Resolution is the right term for the documented property.
|
|
|
|
|
|
|
|
|
|
| |
The _Thread_queue_Extract() does not deal with potential priority
updates and the SMP locking protocol handling. Use
_Thread_queue_Continue(). For the POSIX signals processing this is
currently probably unnecessary, however, the use case is similar to the
restart so use the same appoach.
Close #4546.
|
|
|
|
|
|
|
| |
Move _Thread_queue_Extract() since this function is not used by the core
services (threads, semaphores, mutexes, message queues).
Update #4546.
|
|
|
|
|
|
|
|
|
|
| |
Remove the THREAD_WAIT_STATE_READY_AGAIN and simply use the initial value to
indicate that a thread does not wait on something. Rename
THREAD_WAIT_FLAGS_INITIAL to THREAD_WAIT_STATE_READY. This change is necessary
so that _Thread_Continue() can be called for threads which never waited on
something (for example dormant threads).
Update #4546.
|
|
|
|
|
|
|
|
| |
Remove _Thread_queue_Extract_with_proxy() and move the proxy extraction
to _Thread_MP_Extract_proxy(). Move similar code blocks of the previous
caller of _Thread_queue_Extract_with_proxy() to helper functions.
Update #4546.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Return an error status for the following error condition in
rtems_scheduler_remove_processor():
While an attempt is made to remove a processor from a scheduler, while
the processor is the only processor owned by the scheduler, if a thread
exists which uses the scheduler as a helping scheduler, then the
processor shall not be removed.
The reason is that ask for help requests and withdraw node requests are
processed asynchronously in any order. An ask for help request carried
out on a scheduler without a processor is undefined behaviour.
Update error status description.
Update #4544.
|
|
|
|
|
|
| |
Properly assert that the scheduled chain is not empty. Fix formatting.
Close #4531.
|
|
|
|
|
|
|
|
| |
Process ask for help requests on the current processor. This avoids
using inter-processor interrupts to make the system behaviour a bit more
predictable.
Update #4531.
|
|
|
|
|
|
|
|
|
| |
Simplify callers of _Scheduler_SMP_Schedule_highest_ready(). Move the node
state change and the extraction from scheduled into
_Scheduler_SMP_Schedule_highest_ready(). Move the idle thread release to the
caller which have more information about the presence of an idle thread.
Update #4531.
|
|
|
|
| |
Update #4531.
|
|
|
|
|
|
|
| |
Move _Scheduler_Unblock_node() into _Scheduler_SMP_Unblock(). This simplifies
the code and makes it easier to review.
Update #4531.
|