| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Use a dedicate system initialization step to zero the memory used for
the workspace and C program heap.
This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is
not configured.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work area initialization was done by the BSP through
bsp_work_area_initialize(). This approach predated the system
initialization through the system initialization linker set. The
workspace and C program heap were unconditionally initialized. The aim
is to support RTEMS application configurations which do not need the
workspace and C program heap. In these configurations, the workspace
and C prgram heap should not get initialized.
Change all bsp_work_area_initialize() to implement _Memory_Get()
instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and
malloc() heap initialization into separate system initialization steps.
This makes it also easier to test the individual initialization steps.
This change adds a dependency to _Heap_Extend() to all BSPs. This
dependency will be removed in a follow up change.
Update #3838.
|
|
|
|
| |
Update #3838.
|
|
|
|
| |
Update #3838.
|
|
|
|
| |
Only align per-processor data in SMP configurations.
|
|
|
|
|
| |
Remove THREAD_STATUS_PROXY_BLOCKING and replace it with
STATUS_PROXY_BLOCKING.
|
|
|
|
|
|
|
| |
The objects node is statically initialized to one. Clear the node field
before it is set.
Update #3621.
|
|
|
|
|
|
| |
This function is unused.
Update #3735.
|
|
|
|
| |
Update #3735.
|
|
|
|
| |
Update #3735.
|
|
|
|
|
|
|
| |
Replace the user MPCI configuration table with a system provided
_MPCI_Configuration.
Update #3735.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two use cases were envisioned for this.
1) a BSP or application which desires to update a real-time clock
when the RTEMS TOD is set.
2) a paravirtualized BSP can use this to propagate setting the time
in an RTEMS application to the hosting environment. This enables
the entire set of applications in the virtualized environments
to have a single consistent TOD.
|
|
|
|
|
| |
Avoid the use of the workspace and use statically allocated switch
controls for the initial extensions.
|
| |
|
|
|
|
| |
Support for targets compiled with -fno-pic and -mno-relax
|
|
|
|
| |
Determine the next block only once and use it throughout.
|
|
|
|
| |
Update #3806.
|
| |
|
|
|
|
|
|
| |
This makes it possible to install higher quality timecounter in
plug-and-play systems and helps to override the clock driver provided
timecounter in some test scenarios.
|
|
|
|
|
| |
The double call of the timecounter get method was added to FreeBSD in
2002 without a comment. It is not clear why this is needed.
|
| |
|
|
|
|
| |
Keep the stack pointer properly 8-byte aligned.
|
|
|
|
| |
Closes #3762
|
|
|
|
|
| |
The superfluously modified %l0 had no effect if the branch is not taken.
This change clarifies the code.
|
|
|
|
|
|
|
|
|
| |
It is needed to restore PSR just before return because condition
codes are dirty after the CMP instructions and this may cause
undefined program behavior after returning from the switching
procedure (on following branch instruction, for example).
Close #3756.
|
|
|
|
|
|
| |
Use the FPU and check that the condition codes in the PSR are preserved.
Update #3756.
|
| |
|
| |
|
| |
|
|
|
|
| |
All uses were replaced by per-processor jobs.
|
|
|
|
|
|
|
|
| |
Process only the jobs initially registered on the processing list. This
makes it possible to add jobs for the current processor in a job
handler. These jobs are processed with the next
SMP_MESSAGE_PERFORM_JOBS message. The lock is only acquired and
released once.
|
| |
|
|
|
|
|
| |
This enables re-use for other purposes, e.g. replacement for
SMP_MESSAGE_TEST.
|
|
|
|
|
|
| |
Move resposibility to disable thread dispatching to the caller of
_SMP_Multicast_action(). Using an interrupt disable for this purpose is
questionable.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
If the caller already disabled interrupts, then do not disable thread
dispatching. Calling _SMP_Multicast_action() with interrupts disabled
is a questionable use case.
|
|
|
|
| |
Use _SMP_Multicast_action() instead.
|
|
|
|
| |
Let it work during system initialization.
|
|
|
|
|
| |
Use a FIFO list of jobs per processor to carry out the SMP multicast
action. Use a done indicator per job to reduce the bus traffic a bit.
|
|
|
|
| |
Processor_mask is the internal data type to deal with processor sets.
|
|
|
|
|
|
| |
The use of a hand crafted lock for Per_CPU_Control::Lock was necessary
at some point in the SMP support development, but it is no longer
justified.
|
|
|
|
|
| |
Add _ISR_lock_Set_name() to optimize the initialization of
zero-initialized locks.
|
|
|
|
|
|
|
| |
Rename _SMP_Get_processor_count() in _SMP_Get_processor_maximum() to be
in line with the API level rtems_scheduler_get_processor_maximum().
Update #3732.
|
|
|
|
|
|
|
| |
Rename _SMP_Processor_count in _SMP_Processor_maximum to be in line with
the API level rtems_scheduler_get_processor_maximum().
Update #3732.
|
|
|
|
|
| |
The _Objects_Information_table[ the_api ] is never NULL for a valid API
index.
|
|
|
|
| |
Update #3706
|
|
|
|
| |
Update #3706.
|