| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
rtl-mdreloc-aarch64.c and elf_machdep.h came from NetBSD.
Updates #4682
|
|
|
|
|
|
|
|
|
|
| |
The rtems_task_delete() directive is basically just a combined pthread_cancel()
and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The
exit value returned by pthread_join() of threads cancelled by
rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value
instead of NULL which could be a normal exit value.
Close #4680.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Threads may join the thread termination of another thread using the
pthread_join() or rtems_task_delete() directives. The thread cancel operation
used a special case priority boosting mechanism implemented by
_Thread_Raise_real_priority(). The problem was that this approach
* is not transitive,
* does not account for priority adjustments of the calling task
while waiting for the join,
* does not support clustered scheduling, and
* does not detect deadlocks.
All these problems are fixed by using a priority inheritance thread queue for
the join operation.
Close #4679.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The uniprocessor schedulers had some special case logic for the
PRIORITY_PSEUDO_ISR priority. Tasks with a priority of PRIORITY_PSEUDO_ISR
were allowed to preempt a not preemptible task. If other higher priority task
are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible
task, then the other tasks run before the not preemptible task. This made the
RTEMS_NO_PREEMPT mode ineffective.
Remove the PRIORITY_PSEUDO_ISR special case logic. This simplifies the
uniprocessor schedulers. Move the uniprocessor-specific scheduler support to
the new header file <rtems/score/scheduleruniimpl.h>.
Close #2365.
|
|
|
|
|
|
|
|
|
| |
This alters the AArch64 page table generation and mapping code and MMU
configuration to use page table level 0 in addition to levels 1, 2, and
3. This allows the mapping of up to 48 bits of memory space and is the
maximum that can be mapped without relying on additional processor
extensions. Mappings are restricted based on the number of physical
address bits that the CPU supports.
|
|
|
|
|
|
|
|
| |
Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static
Objects_Information initialization") introduced an off-by-one error in the
maintenance of inactive objects.
Close #4677.
|
|
|
|
|
|
|
| |
With unlimited objects the object maximum may be larger than the sum of active
and inactive objects.
Update #4677.
|
|
|
|
|
|
| |
Dirty or zero also the part of the .noinit section used by RTEMS.
Close #4678.
|
|
|
|
|
|
| |
Conditional expressions with inline functions are not optimized away if
optimization is disabled. Avoid such expressions to prevent dead
branches.
|
|
|
|
| |
This function is only used in SMP configurations.
|
|
|
|
| |
This function was never actually used and is dead code.
|
|
|
|
|
|
|
|
|
|
|
|
| |
At some point during system initialization, the idle threads are created.
Afterwards, the boot processor basically executes within the context of an idle
thread with thread dispatching disabled. On some architectures, the
thread-local storage area of the associated thread must be set in dedicated
processor registers. Add the new CPU port function to do this:
void _CPU_Use_thread_local_storage( const Context_Control *context )
Close #4672.
|
|
|
|
| |
Update #4670.
|
| |
|
|
|
|
|
|
|
| |
Conditional expressions with inline functions are not optimized away if
optimization is disabled. Avoid such expressions to prevent dead
branches. It helps also during code review to immediately see if a loop
is used or not.
|
|
|
|
|
|
|
| |
The real implementation of hardpps() is defined in kern_ntptime.c. Use it only
if the NTP support is needed by the application.
Update #2349.
|
|
|
|
|
|
|
|
| |
Use CLOCK_REALTIME and CLOCK_MONOTONIC for relative thread queue timeouts
instead of CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE. This fixes an
issue with clock_nanosleep() in combination with clock_gettime().
Close #4669.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The false trigger is covered in:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
GCC 11 and 12 has been patched for constant pointer casts above
4K. This code casts a constant pointer within the first 4K
page. As a result the patch disables the warning.
Updates #4662
|
|
|
|
|
|
| |
Since pps->capgen equal to zero is not a special value in uniprocessor configurations, there is no need to check for this condition.
Update #2349
|
|
|
|
|
|
|
|
|
|
| |
Sections with identical attributes may be contiguous with a respective
begin and end address which is not on a minimum region boundary. The
begin address is aligned down to the region base address. The end
address is aligned up to the region end address. Account for this in
the check for contiguous sections.
Update #4202.
|
|
|
|
|
|
|
|
| |
A section may span up to the end of the address range. In this case the
end address is zero. Use the base address to check if a region should
be before another region.
Update #4202.
|
| |
|
|
|
|
|
|
| |
Return early only if there was a timeout, otherwise return the PPS info.
Update #2349.
|
|
|
|
| |
Close #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
|
|
| |
Rename tc_getfrequency() to _Timecounter_Get_frequency().
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
| |
Update #2349.
|
|
|
|
|
|
| |
Remove URL in copyright notice.
Update #3053.
|
| |
|
| |
|
|
|
|
|
| |
These files had no header, copyright, or license. Based on git history,
added appropriate copyright and license.
|
|
|
|
|
| |
This file had no header, copyright, or license. 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.
|
| |
|
|
|
|
|
|
|
| |
The other ports included that architecture's version of this file from
NetBSD. This patch follows that pattern.
closes #4641
|
|
|
|
|
|
| |
Permission received from Anthony Green.
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Add an architecture-specific implementation for
_CPU_Get_current_per_CPU_control() to reduce overhead for getting the
current CPU's Per_CPU_Control structure.
|
|
|
|
|
| |
Fix move of regions. Allow sections to be contained in a region (may
happen due to region alignment).
|
|
|
|
| |
This simplifies unit testing.
|