summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Remove _Internal_errors_What_happenedSebastian Huber2021-07-281-2/+0
| | | | | | | | | | Users have access to the fatal error source and code though the fatal error extension. The user-specific fatal error handling should be done in statically initialized fatal error handlers. The _Internal_errors_What_happened was updated after the fatal error extension. In addition, there was no API to get the information stored in _Internal_errors_What_happened. In SMP configurations, this object could contain a mix of different fatal errors. Remove this object to save some bytes of storage.
* rtems: Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPTSebastian Huber2021-07-261-1/+1
| | | | | | | | Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT as the fatal source for spurious interrupts. Use the interrupt vector number of the spurious interrupt for the fatal code. Update #3269.
* sparc: Prefer RTEMS_FATAL_SOURCE_EXCEPTIONSebastian Huber2021-07-152-17/+55
| | | | | | Prefer RTEMS_FATAL_SOURCE_EXCEPTION over INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT since the fatal code (rtems_exception_frame) provides more context.
* spcoverage: Remove test programSebastian Huber2021-07-155-85/+0
| | | | | This program contained an optional test case. It was enabled by the RTEMS_COVERAGE define. The functions under test are not implemented by RTEMS.
* score: Add PER_CPU_DATA_NEED_INITIALIZATION()Sebastian Huber2021-06-101-0/+2
| | | | | | | | | Make the initialization of the per-CPU data optional. Change license to BSD-2-Clause according to file history and re-licensing agreement. Update #3053.
* splinkersets01: Test linker sets in librarySebastian Huber2021-06-104-5/+45
| | | | | Make sure that the linker sets work if placed in a library (this is how they are used in RTEMS).
* thread-API: Add rtems_*mutex_try_lockChristian Mauderer2021-05-281-0/+79
| | | | | | This adds a rtems_mutex_try_lock and a rtems_recursive_mutex_try_lock. Update #4440.
* rtems: Check entry point in rtems_task_start()Sebastian Huber2021-05-141-0/+9
| | | | Close #4410.
* rtems: Constify rtems_task_wake_when()Sebastian Huber2021-05-121-2/+2
| | | | | | | | | | | | | | | | Add a parameter to _TOD_Validate() to disable the validation of the ticks member. There are two reasons for this change. Firstly, in rtems_task_wake_when() was a double check for time_buffer == NULL (one in rtems_task_wake_when() and one in _TOD_Validate()). Secondly, the ticks member is ignored by rtems_task_wake_when(). This was done with a write of zero to the ticks member and thus a modification of the user-provided structure. Now the structure is no longer modified. Using a mask parameter is quite efficient. You just have to load an immediate value and there are no additional branches in _TOD_Validate(). Close #4406.
* _TOD_Validate(): Fix incorrect return codeFrank Kühndel2021-05-121-3/+3
| | | | | | | | | | | | | | | This patch fixes bug #4403. Directives * rtems_timer_fire_when() * rtems_timer_server_fire_when() * rtems_task_wake_when() are documented to return RTEMS_INVALID_ADDRESS when their time-of-day argument is NULL. But actually they return RTEMS_INVALID_CLOCK. To fix the issue this patch changes _TOD_Validate() to return a status code instead of just true/false. Close #4403
* rtems: rtems_scheduler_get_processor_set() statusSebastian Huber2021-05-061-1/+1
| | | | | | | | | In case the processor set is not large enough to contain the processor set owned by the scheduler return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object. Close #4401.
* spmisc01: Test RTEMS_NOINITSebastian Huber2021-05-021-0/+5
| | | | Close #3866.
* rtems: Change rtems_task_get_affinity() statusSebastian Huber2021-04-271-1/+2
| | | | | | | | | In case the processor set is not large enough to contain the processor affinity set of the task return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object. Close #4393.
* clock:_TOD_To_seconds(): Fix year 2514 overflowFrank Kühndel2021-04-211-10/+18
| | | | | | | | | | | | | | | | | | | | | | | This patch fixes issue #4338 by changing _TOD_Validate() to only accept years till 2105. This requires another patch to change the documentation of rtems_clock_set() and other affected API functions (indicating the end date is 2105 not 2514). I tried to support till year 2514 but it turned out that this needs changing the Timer Manager too. That in turn would mean to change _TOD_Seconds_since_epoch( void ) from 32 to 64 bit. Sebastian pointed out that a naive extension leads to trouble with 32 bit processors. He deemed a safe re-implementation too costly performance wise considering that year 2106 is far away and current binaries using RTEMS Classic API are unlikely to be in use by 2106. The constant TOD_SECONDS_AT_2100_03_01_00_00 in cpukit/rtems/src/clocktodtoseconds.c happens to be wrong by 1 hour. When setting the date 2100-Feb-28 23:59:59 and then reading the date again you will find yourself in 2100-Feb-27. Update #4338
* score: Fix task stack initializationSebastian Huber2021-03-271-1/+5
| | | | | | | | | Do not adjust the stack area begin address since this may confuse the stack allocator and result in failed stack frees. Account for the alignment overhead in the stack space size estimate. Check that the stack size is in the expected interval.
* rtems: Require RTEMS_PRIORITY for MrsP semaphoresSebastian Huber2021-03-161-9/+14
| | | | | | | | | MrsP semaphores are a generalization of the priority ceiling semaphores for SMP configurations. Priority ceiling semaphores are required to use the priority task wait queue discipline. Require this discipline also for MrsP semaphores. Close #4347.
* sp14: Fix for SMP or robust thread dispatchSebastian Huber2021-03-161-0/+5
| | | | Close #4343.
* CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZESebastian Huber2021-03-051-6/+6
| | | | | Ensure that CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE meets the task storage alignment requirement.
* Add system initialization step for target hashSebastian Huber2021-02-261-0/+16
| | | | Update #4267.
* score: Add _IO_Base64url()Sebastian Huber2021-02-251-0/+12
| | | | Update #4267.
* rtems: Rework object services APISebastian Huber2021-02-031-8/+0
| | | | | | | | | Add a "Constraints" paragraph to the documentation. Provide prototypes for programming language bindings. Use the macro implementation to implement the corresponding functions. Update #3993.
* splinkersets01: Fix declarationSebastian Huber2021-01-231-2/+2
| | | | | | | | | | | | GCC 11 produced warnings like this: items.c:21:1: warning: ignoring attribute 'section (".rtemsrwset.test_rw.content.0.1")' because it conflicts with previous 'section (".rtemsrwset.test_rw.content.1")' [-Wattributes] items.c:23:1: warning: ignoring attribute 'section (".rtemsroset.test_ro.content.0.OC")' because it conflicts with previous 'section (".rtemsroset.test_ro.content.1")' [-Wattributes]
* rtems: Add <rtems/rtems/clockimpl.h>Sebastian Huber2020-12-021-0/+1
|
* config: CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZESebastian Huber2020-11-264-1/+72
| | | | | | | | | | In order to better support applications which use the new rtems_task_construct() directive add the CONFIGURE_INIT_TASK_CONSTURCT_STORAGE_SIZE configuration option. If this option is specified, then the Classic API initialization task is constructed with rtems_task_construct(). Update #4181.
* Avoid INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULLSebastian Huber2020-11-265-61/+0
| | | | | | | Replace a runtime check with a compile time assertion. This makes the INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULL obsolete. Update #4181.
* config: Simplify task stack allocator initSebastian Huber2020-11-197-75/+26
| | | | | Replace runtime checks with compile time assertions. This makes the INTERNAL_ERROR_BAD_STACK_HOOK obsolete.
* rtems: Add RTEMS_PARTITION_ALIGNMENTSebastian Huber2020-10-071-8/+9
| | | | Update #4105.
* spmsgq_err01: Use correct max values and fix 64bitKinsey Moore2020-10-051-3/+3
| | | | | Fix spmsgq_err01 on systems with 64-bit pointers and correct max value mismatches and inaccuracies that are more noticable on 64-bit systems.
* rtems: Add rtems_message_queue_construct()Sebastian Huber2020-09-282-9/+14
| | | | | | | | | | | In contrast to message queues created by rtems_message_queue_create(), the message queues constructed by this directive use a user-provided message buffer storage area. Add RTEMS_MESSAGE_QUEUE_BUFFER() to define a message buffer type for message buffer storage areas. Update #4007.
* score: Simplify CORE_message_queue_BufferSebastian Huber2020-09-281-2/+1
| | | | | | | | | | Merge CORE_message_queue_Buffer structure into CORE_message_queue_Buffer_control. Use a zero-length array for the actual message buffer. This reduces the structure size on all targets. Update #4007.
* score: Improve _CORE_message_queue_Initialize()Sebastian Huber2020-09-282-6/+7
| | | | | | Return a status code and differentiate between error conditions. Update #4007.
* rtems: Add rtems_task_construct()Sebastian Huber2020-09-173-10/+18
| | | | | | | | | | | | | | | | | In contrast to rtems_task_create() this function constructs a task with a user-provided task storage area. The new directive uses a configuration structure instead of individual parameters. Add RTEMS_TASK_STORAGE_SIZE() to calculate the recommended size of a task storage area based on the task attributes and the size dedicated to the task stack and thread-local storage. This macro may allow future extensions without breaking the API. Add application configuration option CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE to adjust RTEMS Workspace size estimate. Update #3959.
* CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZESebastian Huber2020-09-174-2/+84
| | | | | | | | | | | Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
* spintrcritical08: Increase clock tick intervalSebastian Huber2020-09-101-1/+1
| | | | | On some simulators, a clock tick interval of 1ms seems to be too short. For example, the test failed on sparc/erc32 using the SIS.
* score: Add <rtems/score/freechainimpl.h>Sebastian Huber2020-08-311-1/+1
| | | | | | Hide implementation details. Update #3959.
* rtems: Add _RTEMS_Name_to_id()Sebastian Huber2020-08-311-2/+2
| | | | | | | | | | Simplify object name to identifier directives. Using _RTEMS_Name_to_id() to implement the directives enables a tail call optimization. Change license to BSD-2-Clause according to file history. Update #3053.
* spintrcritical22: Use right thread wait flagsSebastian Huber2020-08-211-1/+1
|
* spintrcritical16: Use right thread wait flagsSebastian Huber2020-08-211-1/+1
|
* spintrcritical23: Fix unused variable warningsSebastian Huber2020-08-201-2/+2
|
* sp37: Fix unused variable warningsSebastian Huber2020-08-201-0/+2
|
* spintrcritical23: Restore runner prioritySebastian Huber2020-08-111-0/+8
|
* spmisc01: Include missing header fileSebastian Huber2020-07-241-0/+2
| | | | Update #4032.
* score: Add RTEMS_WEAKSebastian Huber2020-07-244-1/+108
| | | | Update #4032.
* spintrcritical_support: RemoveSebastian Huber2020-07-232-224/+0
| | | | This test support was replaced by T_interrupt_test() is no longer used.
* spintrcritical24: Use T_interrupt_test()Sebastian Huber2020-07-233-39/+119
|
* spintrcritical23: Use T_interrupt_test()Sebastian Huber2020-07-233-44/+88
|
* spintrcritical22: Use T_interrupt_test()Sebastian Huber2020-07-233-40/+87
|
* spintrcritical21: Use T_interrupt_test()Sebastian Huber2020-07-234-140/+149
|
* spintrcritical20: Use T_interrupt_test()Sebastian Huber2020-07-233-59/+115
|
* spintrcritical18: Use T_interrupt_test()Sebastian Huber2020-07-233-49/+128
|