summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* _TOD_Validate(): Fix incorrect return codeFrank Kühndel2021-05-125-40/+51
| | | | | | | | | | | | | | | 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: Use _Objects_Free_nothing() for msg queuesSebastian Huber2021-05-112-6/+9
| | | | | | | | Use _Objects_Free_nothing() for rtems_message_queue_construct() to avoid unreachable code in _CORE_message_queue_Close() in case only user-provided message buffers are used. Update #4007.
* score: Rename _Stack_Free_nothing()Sebastian Huber2021-05-117-16/+16
| | | | | | | Rename _Stack_Free_nothing() in _Objects_Free_nothing() to make it reusable for the message queue buffers. Update #4007.
* rtems: rtems_scheduler_get_processor_set() docsSebastian Huber2021-05-071-1/+1
| | | | | | Document changed error status. Update #4401.
* rtems_scheduler_ident_by_processor_set() docsSebastian Huber2021-05-071-0/+2
| | | | Document new error status.
* Check the alignment in posix_memalign() earlierSebastian Huber2021-05-071-4/+4
| | | | | | | Make sure all conditions to do a proper memory allocation are satisfied before a zero size memory allocation is performed. Update #4390.
* Return NULL for zero size allocationsSebastian Huber2021-05-067-8/+30
| | | | | | | | | | | | | | | In POSIX, zero size memory allocations are implementation-defined behaviour. The implementation has two options: https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html Linux and FreeBSD return a unique pointer for zero size memory allocations. Return NULL on RTEMS to more likely catch the use of a zero size memory area by erroneous applications. Update #4390.
* libc: Reimplement posix_memlign()Sebastian Huber2021-05-061-7/+22
| | | | | | | | Move all error checks into posix_memalign() so that the returned memory pointer is set to NULL under all error conditions except memptr == NULL. Use parameter names of POSIX documentation.
* 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.
* rtems: rtems_scheduler_ident_by_processor_set()Sebastian Huber2021-05-061-0/+4
| | | | Check for a NULL processor set pointer.
* stackchk: Fixed 32bit pointersStephen Clark2021-05-051-1/+2
| | | | | | Using 32bit types like uint32_t for pointers creates issues on 64 bit architectures like AArch64. Replaced occurrences of these with uintptr_t, which will work for both 32 and 64 bit architectures.
* rtems-fdt: Fixed 32bit pointersStephen Clark2021-05-051-2/+2
| | | | | | Using 32bit types like uint32_t for pointers creates issues on 64 bit architectures like AArch64. Replaced occurrences of these with uintptr_t, which will work for both 32 and 64 bit architectures.
* score: Make _Once_Lock() and _Once_Unlock() staticSebastian Huber2021-05-042-32/+16
| | | | These two functions are no longer used outside of _Once().
* rtems: Use allocator mutex for timer serverSebastian Huber2021-05-041-4/+2
| | | | | | | The allocator mutex is recursive and already used for the task creation in rtems_timer_initiate_server(). Just use this mutex instead of the once mutex to serialize the initialization. This avoids a dependency on condition variables which are not used here.
* Make zero size allocation result consistentSebastian Huber2021-05-043-14/+4
| | | | | | | | | | | | | | | | | | The zero size allocations had no consistent behaviour in RTEMS. For example, malloc( 0 ) returned NULL and posix_memalign( &p, align, 0 ) returned in p a unique pointer (or NULL if no memory is available). In POSIX, zero size memory allocations are implementation-defined behaviour. The implementation has two options: https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html Linux and FreeBSD return a unique pointer for zero size memory allocations. Use this approach for RTEMS as well throughout the memory allocation directives Close #4390.
* libtest: Fix use of flexible array memberSebastian Huber2021-05-032-20/+22
| | | | Flexible array members must not appear in the middle of a structure.
* score: Add _Thread_Dispatch_direct_no_return()Sebastian Huber2021-05-025-4/+18
| | | | | | | | | | The __builtin_unreachable() cannot be used with current GCC versions to tell the compiler that a function does not return to the caller, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99151 Add a no return variant of _Thread_Dispatch_direct() to avoid generation of dead code.
* basedefs: Add RTEMS_NOINITSebastian Huber2021-04-301-16/+26
| | | | Update #3866.
* Use alias for rtems_task_self() and pthread_self()Sebastian Huber2021-04-305-62/+61
| | | | This may reduce the code size a bit.
* appl-config: Add missing "the"Sebastian Huber2021-04-301-11/+10
|
* appl-config: CONFIGURE_BSP_PREREQUISITE_DRIVERSSebastian Huber2021-04-301-2/+2
| | | | Replace copy and paste with a proper description.
* appl-config: Reformat option constraintsSebastian Huber2021-04-301-120/+209
| | | | | | If only one constraint is present, then use a single sentence, otherwise use a list for the constraints. Format the constraints so that the line length limit is maintained.
* cpukit/Makefile.am: Remove remaining LIBNETWORKING filesVijay Kumar Banerjee2021-04-292-44/+0
|
* main_rtrace.c: Add error return when malloc failsRyan Long2021-04-291-0/+1
| | | | | | | CID 1399709: Dereference after null check in rtems_trace_buffering_shell_save(). Closes #4329
* objectextendinformation.c: Ensure information->object_blocks is not NULLRyan Long2021-04-291-0/+11
| | | | | | CID 26033: Dereference after null check in _Objects_Extend_information(). Closes #4326
* pwdgrp.c: Removed unused variableRyan Long2021-04-291-2/+0
| | | | | | | The 'sc' variable was originally storing the return value of mkdir(). This was causing an issue, so it was changed to make it to where we ignored the return value with (void). The 'sc' variable was left in by mistake.
* rtems: Generate <rtems/rtems/tasks.h>Sebastian Huber2021-04-282-634/+1983
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/rtems/region.h>Sebastian Huber2021-04-281-180/+633
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/rtems/intr.h>Sebastian Huber2021-04-282-220/+750
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Fix typo "cod" -> "code"Sebastian Huber2021-04-281-3/+3
|
* rtems: Clarify constraints in documentationSebastian Huber2021-04-286-15/+26
|
* Return status code for _Thread_Start()Sebastian Huber2021-04-274-13/+12
| | | | | This avoids having conditional statements to get the API-specific status code.
* Return status code for _Scheduler_Set_affinity()Sebastian Huber2021-04-2711-45/+63
| | | | | This avoids having conditional statements to get the API-specific status code.
* rtems: Change rtems_task_get_affinity() statusSebastian Huber2021-04-273-2/+4
| | | | | | | | | 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.
* Simplify get affinitiy directivesSebastian Huber2021-04-272-6/+0
| | | | | There is no need to disable thread dispatching to get the affinity of a task.
* Return status code for _Scheduler_Get_affinity()Sebastian Huber2021-04-275-14/+23
| | | | | This avoids having conditional statements to get the API-specific status code.
* rtems: Constify timer fire when directivesSebastian Huber2021-04-273-4/+4
| | | | Close #4392.
* Makefile.am: Remove legacy networking filesVijay Kumar Banerjee2021-04-262-174/+2
|
* rtems: Generate <rtems/rtems/ratemon.h>Sebastian Huber2021-04-231-180/+554
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/rtems/message.h>Sebastian Huber2021-04-231-183/+720
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Check for NULL config in task constructSebastian Huber2021-04-231-0/+4
| | | | | | | Since there are already excessive NULL pointer checks in the Classic API, do this also in rtems_task_construct(). Update #3959.
* rtems: Check for NULL config in msgq constructSebastian Huber2021-04-231-0/+4
| | | | | | | Since there are already excessive NULL pointer checks in the Classic API, do this also in rtems_message_queue_construct(). Update #4007.
* rtems: Mention timer server fire directivesSebastian Huber2021-04-221-2/+3
| | | | A timer may be also reinitiated by the timer server fire directives.
* rtems: Generate <rtems/rtems/support.h>Sebastian Huber2021-04-211-84/+320
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/rtems/mp.h>Sebastian Huber2021-04-211-30/+126
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/rtems/dpmem.h>Sebastian Huber2021-04-211-88/+280
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/init.h>Sebastian Huber2021-04-211-29/+103
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Generate <rtems/fatal.h>Sebastian Huber2021-04-211-55/+229
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* clock:_TOD_To_seconds(): Fix year 2514 overflowFrank Kühndel2021-04-213-1/+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
* Fix calloc() behaviour in case of overflowSebastian Huber2021-04-202-2/+20
| | | | | | | The multiplication to calculate the length of the memory area to allocate may overflow. Return NULL in case of an overflow. Close #4389.