| Commit message (Collapse) | Author | Files | Lines |
|
The processor mask implementation uses flsl() from <strings.h> which is
only BSD visible. Move the implementation to a separate header file to
hide it from the API level. This fixes build errors with GCC 14.
|
|
The parameters are unused due to API constraints. The functions are
used through function pointers. Alternative implementations may use the
parameters.
Update #4862.
|
|
This fixes:
heap.c:268:3: warning: implicit declaration of function 'memset'
|
|
The use of this function is optional. Newer BSPs do not use it.
|
|
Prefer macros with a proper namespace.
|
|
|
|
When the switch to waf occurred, the SMP support in i386 was left out
causing it to accumulate a minor amount of cruft. This enables SMP for
the i386 BSPs that support it and updates them for the API drift that
has occurred since the change.
|
|
Change extend_count to uint32_t from uint16_t to avoid a possible
premature integer overflow when it is later used for multiplication.
|
|
This fixes a build error with RTEMS_PROFILING enabled.
Update #4954.
|
|
Enable a BSP-specific CPU counter implementation.
Update #4954.
|
|
|
|
Fix a potential stack corruption in uniprocessor configurations during
start multitasking.
The system initialization uses the interrupt stack. A first level
interrupt shall never interrupt a context which uses the interrupt
stack. Such a use would lead to stack corruption and undefined system
behaviour. Unfortunately, in uniprocessor configurations this was the
case. Multiprocessing is started using _CPU_Context_restore(). The
caller of this function (_Thread_Start_multitasking()) uses the
interrupt stack. Later we have in cpukit/score/cpu/sparc/cpu_asm.S:
mov %g1, %psr ! restore status register and
! **** ENABLE TRAPS ****
ld [%o1 + G5_OFFSET], %g5 ! restore the global registers
ld [%o1 + G7_OFFSET], %g7
! Load thread specific ISR dispatch prevention flag
ld [%o1 + ISR_DISPATCH_DISABLE_STACK_OFFSET], %o2
! Store it to memory later to use the cycles
ldd [%o1 + L0_OFFSET], %l0 ! restore the local registers
ldd [%o1 + L2_OFFSET], %l2
ldd [%o1 + L4_OFFSET], %l4
ldd [%o1 + L6_OFFSET], %l6
! Now restore thread specific ISR dispatch prevention flag
st %o2, [%g6 + PER_CPU_ISR_DISPATCH_DISABLE]
ldd [%o1 + I0_OFFSET], %i0 ! restore the input registers
ldd [%o1 + I2_OFFSET], %i2
ldd [%o1 + I4_OFFSET], %i4
ldd [%o1 + I6_FP_OFFSET], %i6
ldd [%o1 + O6_SP_OFFSET], %o6 ! restore the output registers
Between the ENABLE TRAPS and the restore of the output registers, we
still use the stack of the caller and interrupts may be enabled. If an
interrupt happens in this code block, the interrupt stack is
concurrently used which may lead to a crash.
Fix this by adding a new function _SPARC_Start_multiprocessing() for
uniprocessor configurations. This function first sets the stack pointer
to use the stack of the heir thread.
Close #4955.
|
|
|
|
Casts from uint64_t to void* must go through a uintptr_t cast to avoid
warnings when building with the ILP32 ABI since this is otherwise an
implicit truncation to 32bits for a pointer.
|
|
Enumerators are restricted to signed integers in some C standards.
|
|
Add _CPU_Get_TLS_thread_pointer() to get the thread pointer which is
used to get the address of thread-local storage objects associated with
a thread.
Update #4920.
|
|
Fix rtems_configuration_get_interrupt_stack_size() for some code models.
The _ISR_Stack_size symbol has an arbitrary absolute address and may not
be representable in the code model used by the compiler.
Update #4953.
|
|
Store symbols with an arbitrary absolute address such as _TLS_Size,
_TLS_Alignment, _TLS_Data_size, and _TLS_BSS_size in an object to avoid issues
with some code models.
Update #4953.
|
|
|
|
The MAIR index currently assigned (1) for uncached memory segments is
not configured properly for this purpose. Instead, this switches
uncached memory segment flags to MAIR index 2 which is properly
configured for uncached inner and outer shareable domains.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The ARM926EJ-S is an ARMv5T architecture processor and lacks some
features of ARMv6 processors such as the ARM1176JZF-S.
Close #4940.
|
|
Update #4844.
|
|
Move <rtems/score/gcov.h> to <rtems/test-gcov.h>. These functions do
not belong to an super core service.
|
|
These functions do not belong to an super core service.
|
|
Update #3707.
|
|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108658
This GCC bug leads to an incomplete code coverage status.
Update #4932.
|
|
This function is not a super core service.
|
|
Sponsored-By: Precidata
|
|
Remove the BSP_POWER_DOWN_AT_FATAL_HALT BSP option. Applications should
do the customization of the system termination with an initial fatal
extension.
|
|
Sebastian has agreed to move this out of score. I should have
removed this patch from my tree but accidentally committed it
with another patch.
|
|
The only use was in a test.
|
|
All CPU ports used the same <rtems/score/cpustdatomic.h> header file to
provide the atomic operations. Remove the header file indirection.
|
|
* _Protected_heap_Get_block_size
* _Protected_heap_Iterate
* _Protected_heap_Resize_block
Closes #4909.
|
|
Prefer macros with a proper namespace.
|
|
|
|
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
|
|
|
|
Use of this method was likely eliminated during the rework to use
FreeBSD bintime/sbintime.
Close #4905.
|
|
AMD64 requires SSE support which operates on 128bit data values.
|
|
There was a cyclic dependency: For RTEMS_STATIC_ANALYSIS we needed
basedefs.h in assert.h. For RTEMS_UNREACHABLE() we needed _Assert() from
assert.h in basedefs.h.
Fix this by introducing _Debug_Unreachable() in basedefs.h.
Add RTEMS_FUNCTION_NAME to basedefs.h and use it in basedefs.h and
assert.h.
Close #4900.
|