Commit Graph
12981 Commits
Author SHA1 Message Date
Kinsey Moore 150dcf5e47 libio: Clean up usage of rtems_termios_device_mode
This cleans up outputUsesInterrupts usage with rtems_termios_device_mode
enum values. The outputUsesInterrupts member was typed as an int, named
as if it were a boolean value, and used as if it were a
rtems_termios_device_mode enum. In this patch, values assigned to
outputUsesInterrupts have been converted to the corresponding
rtems_termios_device_mode enum value, conversions from
deviceOutputUsesInterrupts have been made explicit, and uses of
rtems_termios_device_mode enum values with deviceOutputUsesInterrupts
have been converted to booleans.
2024-01-10 14:43:53 -06:00
Kinsey Moore c37fdedec2 cpukit/dosfs: Jump to correct error handler
When encountering an error during filesystem creation, fat_fd must be
cleaned up appropriately once the file is opened. There was an
opportunity for a resource leak due to jumping to the incorrect error
handling label.
2024-01-10 14:43:53 -06:00
Kinsey Moore e6fce3cd3d cpukit/dosfs: Cast away ignored return
An error is already being reported. Checking the return value of this
function is not useful.
2024-01-05 08:29:25 -06:00
Kinsey Moore efc36cb467 cpukit/jffs2: Revert to non-granular locking
Revert JFFS2 to non-granular locking. This makes the superblock
available to the delayed work that it owns so that delayed work
processing can ensure that shared resources are being exclusively
accessed. This change only affects NAND systems. Moving forward with
granular locking will require a significant investment of time in
producing a test harness that doesn't require hardware such that this
can get a reasonable amount of test coverage.
2023-12-22 19:51:52 -06:00
Sebastian Huber db2495a943 libtest: Change verbosity to normal
A verbose verbosity is not required for normal test suite runs.  It may
be used to debug test cases.
2023-12-19 09:53:40 +01:00
Sebastian Huber a901ca3989 doxygen: CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY
Document CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY.

Update #4961.
2023-12-19 08:26:46 +01:00
Sebastian Huber 93f927de26 tm27: Add TM27_INTERRUPT_VECTOR_ALTERNATIVE
The TM27 support may define TM27_INTERRUPT_VECTOR_ALTERNATIVE to provide
an alternative software generated interrupt request which is raised by
_TM27_Raise_alternative() and cleared by _TM27_Clear_alternative().
Both functions shall return an RTEMS status code.  This interrupt vector
may be used to test the interrupt controller support on targets which do
not provide generic software generated interrupts.

Update #3716.
2023-12-19 08:26:46 +01:00
Sebastian Huber 2e71bd08ba tm27: Add optional TM27_INTERRUPT_VECTOR_DEFAULT
Let the BSP define TM27_INTERRUPT_VECTOR_DEFAULT to more efficiently and
reliably get the TM27 default interrupt vector.

Update #3716.
2023-12-19 08:22:37 +01:00
Sebastian Huber d4b369814a ftpd: Fix set but not used warning 2023-12-19 08:03:42 +01:00
Sebastian Huber 3fe4b72b06 libtest: Fix test printer in rtems_test_run()
Route the test output through T_vprintf() only while the test suite
runs.  Otherwise, the begin/end of test message may not show up.
2023-12-14 11:32:22 +01:00
Sebastian Huber 2a7df50a73 libtest: Set test printer in rtems_test_run()
Route the test output through T_vprintf().
2023-12-14 11:12:49 +01:00
Sebastian Huber 46b32dd662 ftpd: Make socket timeout optional
This feature is not supported by lwIP.
2023-12-14 11:12:49 +01:00
Chris Johns a9905de7a4 rtems-fdt: Fix node property access on 64bit 2023-12-14 07:49:42 +11:00
Chris Johns 7260887fa9 libmisc/shell: Work around tmux bug in row and column
- Extend the timeout to 150 msec for long remote sessions

- Improve the performance of the detection

Closes #4975
Closes #4977
2023-12-13 18:13:16 +11:00
Sebastian Huber ac16e3b961 libtest: Add hash to gcov info dump
This helps to validate that the data was transferred correctly.
2023-11-28 14:30:46 +01:00
Sebastian Huber d586b3c014 libtest: Add T_add_remark()
This can be used to report that nested test cases did run in a test
case.

Update #4971.
2023-11-28 14:30:46 +01:00
Sebastian Huber 71c024eaca score: Fix typo in name 2023-11-21 11:51:56 +01:00
Sebastian Huber 0c65f9faf3 score: Fix implicit integer conversion warnings 2023-11-02 13:40:33 +01:00
Sebastian Huber 51d596281c imfs: Constify rtems_tarfs_load()
Change the public image data type to a void pointer.
2023-11-02 13:34:22 +01:00
Kinsey Moore b0bd4bff49 cpukit/libfs/dosfs: Use enum values for enum init 2023-10-30 16:43:01 -05:00
Kinsey Moore 894ce51cd5 cpukit/score: Convert Thread_Life_state to uint32_t
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.
2023-10-30 16:43:01 -05:00
Sebastian Huber b8f1988f15 doxygen: Replace and move main page
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.
2023-10-23 11:16:39 +02:00
Sebastian Huber 36b935f1c3 sparc: Fix move of CPU counter implementation
This fixes a build error with RTEMS_PROFILING enabled.

Update #4954.
2023-10-20 15:16:27 +02:00
Sebastian Huber b6dc4b4707 sparc: Move CPU counter implementation
Enable a BSP-specific CPU counter implementation.

Update #4954.
2023-10-20 11:16:54 +02:00
Sebastian Huber c15132aafd mpci: Hide implementation details
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 );
      |                     ^~~~~~~~~
2023-10-20 11:16:53 +02:00
Kinsey Moore e7cb79c39d cpukit: Remove unused includes 2023-10-13 19:02:15 -05:00
Kinsey Moore 0a1d0dce3b cpukit/jffs2: Correctly init jffs2_inode_info
The repeated reinitialization of jffs2_inode_info must be done by the
members of the struct to avoid altering others.
2023-10-12 18:56:43 -05:00
Kinsey Moore d7aa1ab86f cpukit/jffs2: Implement JFFS2 spinlocks
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.
2023-10-12 18:56:43 -05:00
Joel Sherrill b9f7eb2a92 fat_fat_operations.c: Fix incorrect indentation 2023-10-12 18:56:29 -05:00
Sebastian Huber 1c36971d92 sparc: Fix stack corruption
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.
2023-10-12 14:10:40 +02:00
Chris Johns 25a4dff56e bsp/i386/pc686: Clean up warnings 2023-10-04 13:17:13 +11:00
Sebastian Huber a1fc6555a6 libtest: Include missing header file
This fixes the build if RTEMS_PROFILING is enabled.
2023-10-02 07:31:20 +02:00
Kinsey Moore f3f8aa5b9b cpukit/aarch64: Resolve warnings with ILP32 ABI
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.
2023-09-26 09:02:48 -05:00
Kinsey Moore 99c637fbd9 cpukit/jffs2: Avoid use of off-chain semantics
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
2023-09-26 09:02:48 -05:00
Sebastian Huber b3e4c41941 arm: Use a valid signed integer constant
Enumerators are restricted to signed integers in some C standards.
2023-09-26 08:04:30 +02:00
Sebastian Huber ee63681aeb tests: Add header for RTEMS test printer
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>.
2023-09-26 08:04:30 +02:00
Sebastian Huber de25f012b7 libdl: Use _CPU_Get_TLS_thread_pointer()
Update #4920.
2023-09-15 10:44:08 +02:00
Sebastian Huber 49a88a73a8 score: Add _CPU_Get_TLS_thread_pointer()
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.
2023-09-15 10:44:08 +02:00
Sebastian Huber 2111497c0f rtems: rtems_configuration_get_interrupt_stack_size()
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.
2023-09-15 10:44:08 +02:00
Sebastian Huber 206bbeb31b score: Fix TLS support for some code models
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.
2023-09-15 10:44:08 +02:00
Sebastian Huber 0add2d2edc score: Fix RTEMS_DEFINE_GLOBAL_SYMBOL()
The availability of a proper RTEMS_DEFINE_GLOBAL_SYMBOL() implementation
depends on __asm__() and thus __GNUC__.

Clarify documentation.

Update #4953.
2023-09-13 07:45:35 +02:00
Alex White 2bb23c7e84 microblaze: Fix relocation targets
Previously the addend was only used in 64 bit relocations. This
behavior was incorrect but did not cause the RTEMS libdl tests to
fail.
2023-09-12 11:20:58 -05:00
Kinsey Moore fa85760c99 cpukit/jffs2: Avoid delayed work lock inversion
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.
2023-09-06 08:53:02 -05:00
Alex White feee169aa7 microblaze: Add libdl support 2023-08-30 11:05:33 -05:00
Chris Johns ceb136c7b6 cpukit/libdl: Fix incorrect operator precedence access the name
Coverity Issue: CID 1442635 Out-of-bounds access
2023-08-28 13:52:46 +10:00
Chris Johns ac6de5a3e9 cpukit/libdl: Correctly account for section alignments
- 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
2023-08-28 13:21:48 +10:00
Chris Johns b9f11607b1 libdl: Realloc text memory if there are trampolines
- Add resize to the allocator interface

- Rework the trampoline variables in the obj struct
  to make better sense of what is happening

Closes #4944
2023-08-27 07:31:49 +10:00
Kinsey Moore 78001d5860 cpukit/score/aarch64: Use correct MAIR index
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.
2023-08-22 12:19:16 -05:00
Joel Sherrill 3d0dc8450e x86_64/include/rtems/score/cpuimpl.h: Address unused parameter warning 2023-08-21 11:40:20 -05:00
Joel Sherrill f7a7ea67fb v850/include/rtems/score/cpuimpl.h: Address unused parameter warning 2023-08-21 11:40:20 -05:00