Commit Graph
34254 Commits
Author SHA1 Message Date
Sebastian Huber 024d4eaa2f rtems: Use allocator mutex for timer server
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.
2021-05-04 09:37:06 +02:00
Sebastian Huber d692c62dfb Make zero size allocation result consistent
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.
2021-05-04 09:37:06 +02:00
Sebastian Huber eb7c33add0 bsps/riscv: Support RTEMS_NOINIT in linkcmds
Update #3866.
2021-05-03 14:05:19 +02:00
Sebastian Huber 5b97821bc8 libtest: Fix use of flexible array member
Flexible array members must not appear in the middle of a structure.
2021-05-03 06:58:53 +02:00
Sebastian Huber 1eb6cdde60 score: Add _Thread_Dispatch_direct_no_return()
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.
2021-05-02 18:41:26 +02:00
Sebastian Huber 2df95414a7 spmisc01: Test RTEMS_NOINIT
Close #3866.
2021-05-02 18:41:26 +02:00
Sebastian Huber e10dec0fe7 bsps: Support RTEMS_NOINIT in linkcmds
Update #3866.
2021-05-02 18:41:21 +02:00
Sebastian Huber a84bf966b5 basedefs: Add RTEMS_NOINIT
Update #3866.
2021-04-30 15:47:03 +02:00
Sebastian Huber 8b15a3242e Use alias for rtems_task_self() and pthread_self()
This may reduce the code size a bit.
2021-04-30 07:56:28 +02:00
Sebastian Huber 09063212d4 appl-config: Add missing "the" 2021-04-30 07:20:52 +02:00
Sebastian Huber 901136e7c1 appl-config: CONFIGURE_BSP_PREREQUISITE_DRIVERS
Replace copy and paste with a proper description.
2021-04-30 07:20:52 +02:00
Sebastian Huber eefe7009bb appl-config: Reformat option constraints
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.
2021-04-30 07:20:52 +02:00
Vijay Kumar Banerjee 8e4f5782eb cpukit/Makefile.am: Remove remaining LIBNETWORKING files 2021-04-29 10:28:39 -06:00
Ryan Long 8cf30c41d9 main_rtrace.c: Add error return when malloc fails
CID 1399709: Dereference after null check in
rtems_trace_buffering_shell_save().

Closes #4329
2021-04-29 09:48:00 -05:00
Ryan Long cdf66529fd objectextendinformation.c: Ensure information->object_blocks is not NULL
CID 26033: Dereference after null check in _Objects_Extend_information().

Closes #4326
2021-04-29 09:48:00 -05:00
Ryan Long a70d60aff7 pwdgrp.c: Removed unused variable
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.
2021-04-29 08:23:22 -05:00
Sebastian Huber 263e00b26a bsps/arm: ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX
Change the ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX value to be in line
with the workspace entry in ARMV7_CP15_START_DEFAULT_SECTIONS.

Close #4395.
2021-04-29 13:42:24 +02:00
Ryan Long fe3e05ffca psx13: Reworked and relicensed
Changed the way the tests were structured, added rtems_test_assert()'s,
updated psx13.scn and the license.

Update #3899
2021-04-28 10:01:04 -05:00
Sebastian Huber a1679af380 rtems: Generate <rtems/rtems/tasks.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-28 07:38:50 +02:00
Sebastian Huber b3d3186dc7 rtems: Generate <rtems/rtems/region.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-28 07:38:50 +02:00
Sebastian Huber 0b9e307f24 rtems: Generate <rtems/rtems/intr.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-28 07:38:50 +02:00
Sebastian Huber 278c7daabf rtems: Fix typo "cod" -> "code" 2021-04-28 07:38:29 +02:00
Sebastian Huber 55c6cb1daa rtems: Clarify constraints in documentation 2021-04-28 07:37:56 +02:00
Peter Dufault f8b91c9503 powerpc/shared/console: "termios" first open sets console baud to 9600
When the PowerPC shared console baud rate starts at anything other than
9600 the termios code will set it to 9600 at the first open.
2021-04-27 16:46:52 -06:00
Peter Dufault 9c13e528a0 powerpc/shared/console: Make console baud rate configurable.
The "powerpc/shared/console" code has the start-up console value fixed
at 9600 baud.  This changes the hard-wired constant "9600" in the code
to the configuration setting "BSP_CONSOLE_BAUD" and adds configuration
support in both the "waf" and the legacy configuration systems.

Note that the VME BSPs beatnik, mvme3100, and mve5100 can be improved
by adding a "mvmexxxx" BSP family. This configuration change, as well
as future configuration changes, could then be made in a "grp.yml" file.
2021-04-27 16:46:48 -06:00
Sebastian Huber bbc93c119c Return status code for _Thread_Start()
This avoids having conditional statements to get the API-specific status
code.
2021-04-27 19:40:13 +02:00
Sebastian Huber 9d82150f5a Return status code for _Scheduler_Set_affinity()
This avoids having conditional statements to get the API-specific status
code.
2021-04-27 19:40:13 +02:00
Sebastian Huber 4b7c77bce3 rtems: Change rtems_task_get_affinity() status
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.
2021-04-27 19:40:12 +02:00
Sebastian Huber 127a812f50 Simplify get affinitiy directives
There is no need to disable thread dispatching to get the affinity of a
task.
2021-04-27 19:40:12 +02:00
Sebastian Huber 1452699241 Return status code for _Scheduler_Get_affinity()
This avoids having conditional statements to get the API-specific status
code.
2021-04-27 19:40:12 +02:00
Sebastian Huber 2684f2a380 rtems: Constify timer fire when directives
Close #4392.
2021-04-27 19:34:30 +02:00
Vijay Kumar Banerjee e29d5cd01d Makefile.am: Remove legacy networking files 2021-04-26 07:59:08 -06:00
Robin Mueller 37649355ce Implementation for STM32 HAL_GetTick using RTEMS
Uses configured millisecond per ticks
2021-04-26 11:24:22 +02:00
Robin Mueller 53bb397dfa Nucleo UART3 (console) pins correction
Now using default pins
2021-04-23 11:39:18 +02:00
Sebastian Huber de6e5153c5 rtems: Generate <rtems/rtems/ratemon.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-23 08:42:03 +02:00
Sebastian Huber 73a0175406 rtems: Generate <rtems/rtems/message.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-23 08:33:32 +02:00
Sebastian Huber f14cf0cd74 rtems: Check for NULL config in task construct
Since there are already excessive NULL pointer checks in the Classic
API, do this also in rtems_task_construct().

Update #3959.
2021-04-23 08:24:07 +02:00
Sebastian Huber 03747b5087 rtems: Check for NULL config in msgq construct
Since there are already excessive NULL pointer checks in the Classic
API, do this also in rtems_message_queue_construct().

Update #4007.
2021-04-23 08:23:59 +02:00
G S Niteesh Babu d75b29d95e bsps/beagle: Refactored i2c driver
Refactored the i2c driver to parse register values from the device
tree rather than hardcoding them. But still the clocks have to
initialized manually.
2021-04-22 18:43:35 +02:00
Sebastian Huber 8854aec152 rtems: Mention timer server fire directives
A timer may be also reinitiated by the timer server fire directives.
2021-04-22 15:57:41 +02:00
Sebastian Huber 8c518a95f2 build: Remove duplicated attributes 2021-04-22 15:31:44 +02:00
Sebastian Huber b229b4c2d6 rtems: Generate <rtems/rtems/support.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-21 19:46:12 +02:00
Sebastian Huber e8be00473d rtems: Generate <rtems/rtems/mp.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-21 19:46:12 +02:00
Sebastian Huber 0be4b8821f rtems: Generate <rtems/rtems/dpmem.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-21 19:46:12 +02:00
Sebastian Huber 71a2e7eec7 rtems: Generate <rtems/init.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-21 19:46:12 +02:00
Sebastian Huber 97ba94b929 rtems: Generate <rtems/fatal.h>
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.
2021-04-21 19:43:29 +02:00
Frank Kühndel 7bbbe4225c clock:_TOD_To_seconds(): Fix year 2514 overflow
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
2021-04-21 07:13:31 +02:00
Sebastian Huber 2a24f99d11 bsps/arm: Set MSP in ARMv7-M start code
Set the Main Stack Pointer (MSP) to the ISR stack area end just in case
we run using the Process Stack Pointer (PSP).  This helps if
applications are started by a boot loader.
2021-04-21 07:04:53 +02:00
Sebastian Huber 51defd9274 Fix calloc() behaviour in case of overflow
The multiplication to calculate the length of the memory area to
allocate may overflow.  Return NULL in case of an overflow.

Close #4389.
2021-04-20 20:33:03 +02:00
Sebastian Huber 6c66bbbadf malloc: Hide RTEMS_Malloc_Sbrk_amount
Move RTEMS_Malloc_Sbrk_amount to the only implementation file which uses
it and make it private to hide implementation-details from an API
header.
2021-04-20 19:18:23 +02:00