| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
| |
Change the public image data type to a void pointer.
|
| |
|
|
|
|
|
|
| |
Thread_Life_state is used as a bitfield, but is declared as an enum.
This converts the enum typedef to a uint32_t typedef and associated bit
definitions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the main page with a high level description of the RTEMS feature
set similar to:
https://docs.rtems.org/branches/master/user/overview/index.html#features
The replaced content can be found in the RTEMS Classic API Guide:
https://docs.rtems.org/branches/master/c-user/overview.html
https://docs.rtems.org/branches/master/c-user/key_concepts.html
Update #3705.
|
|
|
|
|
|
| |
This fixes a build error with RTEMS_PROFILING enabled.
Update #4954.
|
|
|
|
|
|
| |
Enable a BSP-specific CPU counter implementation.
Update #4954.
|
|
|
|
|
|
|
|
|
|
| |
This improves the standard compatibility of API headers. It fixes
errors like this if RTEMS_MULTIPROCESSING is enabled:
cpukit/include/rtems/score/processormask.h: In function 'uint32_t _Processor_mask_Find_last_set(const Processor_mask*)':
cpukit/include/rtems/score/processormask.h:339:21: error: 'flsl' was not declared in this scope
339 | return (uint32_t) __BIT_FLS( CPU_MAXIMUM_PROCESSORS, a );
| ^~~~~~~~~
|
| |
|
|
|
|
|
| |
The repeated reinitialization of jffs2_inode_info must be done by the
members of the struct to avoid altering others.
|
|
|
|
|
|
|
| |
This provides a non-noop implementation of spinlocks for JFFS2 in terms
of RTEMS mutexes. POSIX spinlocks are not appropriate for the types of
actions that occur during a held JFFS2 spinlock and can cause bad
dispatch level conditions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
This fixes the build if RTEMS_PROFILING is enabled.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
This reworks the JFFS2 delayed work queue to avoid use of
on-chain/off-chain semantics since they vary in behavior under
RTEMS_DEBUG and are not guaranteed to be safe to use in SMP systems.
This adds all delayed work structs to the chain on FS init and does not
remove them until umount.
Updates #4956
|
|
|
|
| |
Enumerators are restricted to signed integers in some C standards.
|
|
|
|
|
|
|
|
|
|
| |
The <rtems/test-info.h> header file is required for every RTEMS test
program. Move the RTEMS test printer support to a dedicated header file
<rtems/test-printer.h>. This removes an unnecessary dependency to the
RTEMS printer support in <rtems/test-info.h>.
Tests using the RTEMS Testing Framework no longer depend on the
<rtems/printer.h>.
|
|
|
|
| |
Update #4920.
|
|
|
|
|
|
|
|
| |
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 availability of a proper RTEMS_DEFINE_GLOBAL_SYMBOL() implementation
depends on __asm__() and thus __GNUC__.
Clarify documentation.
Update #4953.
|
|
|
|
|
|
| |
Previously the addend was only used in 64 bit relocations. This
behavior was incorrect but did not cause the RTEMS libdl tests to
fail.
|
|
|
|
|
|
|
| |
This moves delayed work to a temporary chain to prevent a locking
inversion between the delayed work lock and the alloc_sem lock. Delayed
work is now processed after the delayed work lock is released. Locking
order is any JFFS2 locks before the delayed work lock.
|
| |
|
|
|
|
| |
Coverity Issue: CID 1442635 Out-of-bounds access
|
|
|
|
|
|
|
|
|
|
|
| |
- Add the section alignment to the size as the allocator may not
provide correctly aligned memory
- Only include symbols in the section when locating symbols. The
powerpc was incorrectly adding SDATA BSS symbols to the BSS offset
overrunning the section
Closes #4950
|
|
|
|
|
|
|
|
|
| |
- Add resize to the allocator interface
- Rework the trampoline variables in the obj struct
to make better sense of what is happening
Closes #4944
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change requires an rtems-tools update for symbol generation.
Working architectures:
- aarch64
- arm
- powerpc
- sparc
No newlib TLS support but checked:
- i386
- m69k
Updates #4920
|
|
|
|
| |
Closes #4942.
|
|
|
|
| |
Closes #4943
|
|
|
|
|
|
|
|
|
|
|
| |
Updates #4924.
The Regulator is an application support class which is used to
deal with the scenario where there is a bursty input source
which needs to be metered out to a destination sink. The maximum
size of bursts needs to be known and the delivery method must
be configured to deliver messages at a rate that allows the
traffic to not overflow.
|
|
|
|
|
|
|
| |
The ARM926EJ-S is an ARMv5T architecture processor and lacks some
features of ARMv6 processors such as the ARM1176JZF-S.
Close #4940.
|
|
|
|
|
|
|
|
|
|
| |
Define the RTEMS version in the wscript. Optionally use a VERSION file
to change the default values of the wscript. Allow the command line
option --rtems-version to override __RTEMS_MAJOR__. Remove support for
command line configurable options (--rtems-option).
Rename internal define RTEMS_VERSION_VC_KEY to
RTEMS_VERSION_CONTROL_KEY.
|
|
|
|
| |
Update #4844.
|
| |
|