summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* score: Fix typo in nameSebastian Huber2023-11-211-1/+1
|
* score: Fix implicit integer conversion warningsSebastian Huber2023-11-021-6/+6
|
* imfs: Constify rtems_tarfs_load()Sebastian Huber2023-11-022-4/+6
| | | | Change the public image data type to a void pointer.
* cpukit/libfs/dosfs: Use enum values for enum initKinsey Moore2023-10-301-1/+1
|
* cpukit/score: Convert Thread_Life_state to uint32_tKinsey Moore2023-10-301-40/+40
| | | | | | 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.
* doxygen: Replace and move main pageSebastian Huber2023-10-232-951/+206
| | | | | | | | | | | | | | | 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.
* sparc: Fix move of CPU counter implementationSebastian Huber2023-10-201-4/+2
| | | | | | This fixes a build error with RTEMS_PROFILING enabled. Update #4954.
* sparc: Move CPU counter implementationSebastian Huber2023-10-205-285/+10
| | | | | | Enable a BSP-specific CPU counter implementation. Update #4954.
* mpci: Hide implementation detailsSebastian Huber2023-10-203-5/+7
| | | | | | | | | | 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 ); | ^~~~~~~~~
* cpukit: Remove unused includesKinsey Moore2023-10-1320-25/+0
|
* cpukit/jffs2: Correctly init jffs2_inode_infoKinsey Moore2023-10-121-2/+10
| | | | | The repeated reinitialization of jffs2_inode_info must be done by the members of the struct to avoid altering others.
* cpukit/jffs2: Implement JFFS2 spinlocksKinsey Moore2023-10-122-24/+8
| | | | | | | 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.
* fat_fat_operations.c: Fix incorrect indentationJoel Sherrill2023-10-121-3/+3
|
* sparc: Fix stack corruptionSebastian Huber2023-10-122-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* bsp/i386/pc686: Clean up warningsChris Johns2023-10-041-4/+4
|
* libtest: Include missing header fileSebastian Huber2023-10-021-0/+1
| | | | This fixes the build if RTEMS_PROFILING is enabled.
* cpukit/aarch64: Resolve warnings with ILP32 ABIKinsey Moore2023-09-262-3/+6
| | | | | | 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.
* cpukit/jffs2: Avoid use of off-chain semanticsKinsey Moore2023-09-262-42/+50
| | | | | | | | | | 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
* arm: Use a valid signed integer constantSebastian Huber2023-09-261-1/+1
| | | | Enumerators are restricted to signed integers in some C standards.
* tests: Add header for RTEMS test printerSebastian Huber2023-09-264-17/+73
| | | | | | | | | | 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>.
* libdl: Use _CPU_Get_TLS_thread_pointer()Sebastian Huber2023-09-151-67/+6
| | | | Update #4920.
* score: Add _CPU_Get_TLS_thread_pointer()Sebastian Huber2023-09-1519-0/+151
| | | | | | | | 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.
* rtems: rtems_configuration_get_interrupt_stack_size()Sebastian Huber2023-09-153-2/+16
| | | | | | | | | 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.
* score: Fix TLS support for some code modelsSebastian Huber2023-09-153-59/+106
| | | | | | | | 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.
* score: Fix RTEMS_DEFINE_GLOBAL_SYMBOL()Sebastian Huber2023-09-131-2/+3
| | | | | | | | | The availability of a proper RTEMS_DEFINE_GLOBAL_SYMBOL() implementation depends on __asm__() and thus __GNUC__. Clarify documentation. Update #4953.
* microblaze: Fix relocation targetsAlex White2023-09-121-9/+10
| | | | | | Previously the addend was only used in 64 bit relocations. This behavior was incorrect but did not cause the RTEMS libdl tests to fail.
* cpukit/jffs2: Avoid delayed work lock inversionKinsey Moore2023-09-061-1/+13
| | | | | | | 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.
* microblaze: Add libdl supportAlex White2023-08-303-1/+381
|
* cpukit/libdl: Fix incorrect operator precedence access the nameChris Johns2023-08-281-1/+2
| | | | Coverity Issue: CID 1442635 Out-of-bounds access
* cpukit/libdl: Correctly account for section alignmentsChris Johns2023-08-281-19/+12
| | | | | | | | | | | - 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
* libdl: Realloc text memory if there are trampolinesChris Johns2023-08-2719-194/+511
| | | | | | | | | - Add resize to the allocator interface - Rework the trampoline variables in the obj struct to make better sense of what is happening Closes #4944
* cpukit/score/aarch64: Use correct MAIR indexKinsey Moore2023-08-221-2/+2
| | | | | | | 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.
* x86_64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-5/+9
|
* v850/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* sparc64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* sh/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* moxie/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* mips/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* m68k/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* lm32/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* i386/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* bfin/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-0/+4
|
* libdl: Add support to import base image TLS symbolsChris Johns2023-08-2111-57/+395
| | | | | | | | | | | | | | | | 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
* Address Regulator warning for no prototype for memset()zack2023-08-151-0/+1
| | | | Closes #4942.
* cpukit/libdl: AARCH64 unwind uses DWARF 2 tablesChris Johns2023-08-121-0/+17
| | | | Closes #4943
* Add the Regulator Interface and testJoel Sherrill2023-08-113-0/+1316
| | | | | | | | | | | 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.
* arm: Fix cache support for ARM926EJ-SSebastian Huber2023-08-101-4/+22
| | | | | | | The ARM926EJ-S is an ARMv5T architecture processor and lacks some features of ARMv6 processors such as the ARM1176JZF-S. Close #4940.
* build: Optionally use a VERSION fileSebastian Huber2023-08-021-4/+4
| | | | | | | | | | 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.
* score: Assert scheduler index validitySebastian Huber2023-07-283-1/+4
| | | | Update #4844.
* doxygen: Fix group memberships in libtestSebastian Huber2023-07-285-9/+8
|