| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use
defined/undefined instead of TRUE/FALSE.
Close #3862.
|
|
|
|
| |
Update #3863.
|
|
|
|
| |
Update #3865.
|
|
|
|
|
|
| |
Do not cast to unsigned int to avoid an unsigned long long enum type.
Use a multiplication/division instead to preserve the signedness of the
POSIX status.
|
|
|
|
| |
Update #3861.
|
|
|
|
| |
Update #3838.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work area initialization was done by the BSP through
bsp_work_area_initialize(). This approach predated the system
initialization through the system initialization linker set. The
workspace and C program heap were unconditionally initialized. The aim
is to support RTEMS application configurations which do not need the
workspace and C program heap. In these configurations, the workspace
and C prgram heap should not get initialized.
Change all bsp_work_area_initialize() to implement _Memory_Get()
instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and
malloc() heap initialization into separate system initialization steps.
This makes it also easier to test the individual initialization steps.
This change adds a dependency to _Heap_Extend() to all BSPs. This
dependency will be removed in a follow up change.
Update #3838.
|
|
|
|
|
|
|
| |
Use a dedicated system initialization step for the stack checker
interrupt stack support.
Update #3838.
|
|
|
|
|
|
|
| |
Add new BSP system initialization step for work to be performed before
the work areas are initialized.
Update #3838.
|
|
|
|
| |
Update #3838.
|
|
|
|
| |
Update #3838.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify the status code returned by _CORE_message_queue_Submit() when it
detects a wait about to happen in an ISR (which would be deadly) to
return a status which translated to EAGAIN instead of ENOMEM.
This is only relevant for POSIX message queues, since Classic API message
queues cannot block on send.
The motivation is to match the "most related" errno value returned from
mq_send() and mq_timedsend() according to POSIX, via Open Group:
[EAGAIN]
The O_NONBLOCK flag is set in the message queue description
associated with mqdes, and the specified message queue is full.
or via the RTEMS POSIX users documentation
EAGAIN
The message queue is non-blocking, and there is no room on the queue
for another message as specified by the mq_maxmsg.
Neither of these matches the case ofi avoided ISR wait perfectly, but
they seem to be the closest equivalent, unless it is desirable to keep a
new non-standard error for this case. It is presumed that this is not
desirable.
The previously returned ENOMEM error value is not documented in either
the Open Group or the RTEMS POSIX uses documentation. A companion patch
corrects the documentation to include this error condition.
Based on the discussion in:
https://lists.rtems.org/pipermail/devel/2020-January/056891.html
closes #3857.
Message-Id: <CAF9ehCW5P12ZkZja4UPYTbdBFUyC1VKVL-tU7nyUtvK1Lz2Z3g@mail.gmail.com>
|
|
|
|
|
| |
Remove THREAD_STATUS_PROXY_BLOCKING and replace it with
STATUS_PROXY_BLOCKING.
|
|
|
|
| |
Update #2408.
|
| |
|
|
|
|
|
| |
Use the user provided now handler of the test configuration to get the
time in T_now().
|
|
|
|
|
|
|
|
| |
Use CONFIGURE_MAXIMUM_PROCESSORS to configure the EDF SMP scheduler
context. This avoids hard to debug configuration errors resulting in
memory corruptions.
Close #3815.
|
|
|
|
|
|
| |
Bug was introduced by previous commit.
Update #3845.
|
|
|
|
| |
Update #3845.
|
|
|
|
|
|
|
| |
Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS.
Update #3753.
|
|
|
|
|
|
| |
Remove CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE.
Update #3844.
|
|
|
|
|
|
| |
This function is unused.
Update #3735.
|
|
|
|
| |
Update #3735.
|
|
|
|
| |
Update #3735.
|
|
|
|
|
|
|
| |
Replace the user MPCI configuration table with a system provided
_MPCI_Configuration.
Update #3735.
|
|
|
|
| |
Update #3841.
|
|
|
|
|
|
|
| |
Obsolete the CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration
option.
Update #3735.
|
|
|
|
|
|
|
|
| |
Obsolete undocumented configuration options CONFIGURE_MAXIMUM_FIFOS and
CONFIGURE_MAXIMUM_PIPES. Replace these options with the new
CONFIGURE_IMFS_ENABLE_MKFIFO configuration option.
Update #3840.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two use cases were envisioned for this.
1) a BSP or application which desires to update a real-time clock
when the RTEMS TOD is set.
2) a paravirtualized BSP can use this to propagate setting the time
in an RTEMS application to the hosting environment. This enables
the entire set of applications in the virtualized environments
to have a single consistent TOD.
|
|
|
|
|
|
|
| |
Use self-contained condition variables instead of Classic API barriers.
This simplifies the implementation and configuration.
Update #3840.
|
|
|
|
| |
Use watchdog for shared memory driver instead of a Classic API Timer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The MrsP semaphore implementation predates the addition of
self-contained synchronization objects. At this time, the potential
memory reduction was justified considering the more complex
configuration and additional use of the workspace. With the
availability of self-contained synchronization options, e.g. POSIX
mutexes, this is no longer justified. Memory constrained applications
should use the self-contained synchronization objects. Remove the
CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option. This has only an
impact on applications which use SMP and a large number of scheduler
instances.
Update #3833.
|
|
|
|
|
|
|
| |
Move variant, discipline, and global information to flags stored in a
node pointer of active semaphores.
Update #3833.
|
| |
|
|
|
|
|
|
| |
Use a system initialization handler instead of a legacy IO driver.
Update #3834.
|
|
|
|
|
|
|
| |
This function is no longer supported by the standard clock driver
implementation (clockimpl.h).
Update #3436.
|
|
|
|
| |
Optimize _Per_CPU_Get_index() in uniprocessor configurations.
|
| |
|
|
|
|
|
| |
Avoid the use of the workspace and use statically allocated switch
controls for the initial extensions.
|
|
|
|
| |
Update #3823.
|
|
|
|
|
|
|
|
|
| |
This partially reverts commit 7ec08391fee73d7a25855089f4996f3c4f448007.
Since the RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() cannot control the
alignment of the symbol it cannot be used to define the begin of a
linker set. File scope basic __asm__ statements cannot have operands,
so there is no way to specify the desired alignment.
|
| |
|
|
|
|
|
|
|
|
| |
Fix prototype.
Fix node size. Linfiles are dynamically turned into memfiles.
Update #3823.
|
|
|
|
| |
Update #3818.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Integrate parts of this commit:
This commit brings in a new refactored TCP stack
called Rack. Rack includes the following features: - A different SACK
processing scheme (the old sack structures are not used). - RACK (Recent
acknowledgment) where counting dup-acks is no longer done instead time
is used to knwo when to retransmit. (see the I-D) - TLP (Tail Loss
Probe) where we will probe for tail-losses to attempt to try not to take
a retransmit time-out. (see the I-D) - Burst mitigation using TCPHTPS -
PRR (partial rate reduction) see the RFC.
Once built into your kernel, you can select this stack by either
socket option with the name of the stack is "rack" or by setting
the global sysctl so the default is rack.
Note that any connection that does not support SACK will be kicked
back to the "default" base FreeBSD stack (currently known as "default").
To build this into your kernel you will need to enable in your
kernel:
makeoptions WITH_EXTRA_TCP_STACKS=1
options TCPHPTS
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D15525
|
|
|
|
| |
Update #3806.
|
|
|
|
| |
Use RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() instead.
|
|
|
|
|
|
| |
Use RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() instead.
Close #3799.
|