| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some objects can be created with a local or global scope in a
multiprocessing network. In non-multiprocessing configurations setting
the scope to local or global had no effect since such a system can be
viewed as a multiprocessing network with just one node. One and all
nodes is the same in such a network. However, if multiprocessing was
configured, creation of a global object in a single node network
resulted in an RTEMS_MP_NOT_CONFIGURED error. Remove this error
condition for symmetry to the non-multiprocessing setup. This is in line
with the task affinity behaviour in SMP systems.
Update #4005.
|
|
|
|
| |
This order change fixes the Latex documentation build via Doxygen.
|
|
|
|
|
|
|
|
| |
Use the following variant which was already used by most source files:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
|
|
|
|
| |
Update #3949.
|
|
|
|
|
|
|
|
|
|
|
|
| |
In uniprocessor configurations, use compile-time constants for
rtems_scheduler_get_processor_maximum() and
rtems_scheduler_get_processor(). This helps compilers and static
analyzers to deduce that some loop bodies are only executed once and
some conditional statements have a fixed outcome (may improve code
generation and reduce false positives).
In SMP configurations, directly provide the internal implementation for
performance reasons.
|
|
|
|
| |
Update #3881.
|
|
|
|
| |
Update #3881.
|
|
|
|
|
|
| |
Use the non-preempt mode only in uni-processor configurations.
Update #3876.
|
|
|
|
|
|
|
|
| |
If the non-preempt mode for threads is supported depends on the
scheduler implementation. Add
_Scheduler_Is_non_preempt_mode_supported() to indicate this.
Update #3876.
|
|
|
|
|
|
|
| |
Test for the proper system condition instead of using the
rtems_configuration_is_smp_enabled() workaround.
Update #3876.
|
|
|
|
|
| |
This improves API backward compatibility of RTEMS 5.1 to previous
versions.
|
|
|
|
|
| |
Due to the system initialization order, the _Thread_Global_constructor
must be 0 in this function.
|
|
|
|
|
|
|
|
|
|
| |
With the removal of the CONFIGURE_HAS_OWN_INIT_TASK_TABLE configuration
option at most one Classic API user initialization task can be
configured.
Provide an RTEMS API configuration table for backward compatibility.
Update #3873.
|
|
|
|
|
|
| |
Move thread stack allocation to caller side of _Thread_Initialize().
Update #3835.
|
|
|
|
|
|
|
|
|
| |
Add the Thread_Configuration structure to reduce the parameter count of
_Thread_Initialize(). This makes it easier to add more parameters in
the future. It simplifies the code generation since most architectures
do not have that many registers available for function parameters.
Update #3835.
|
|
|
|
| |
Update #2408.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Move variant, discipline, and global information to flags stored in a
node pointer of active semaphores.
Update #3833.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the ability for termios to send SIGINTR on receipt
of VINTR and SIGQUIT for VKILL and return -1/EINTR from read() on
a termios channel. Importantly, this patch does not alter the default
behavior or force POSIX signal code in just because termios is used.
The application must explicitly enable the POSIX behavior of generating
a signal upon receipt of these characters. This is discussed in the
POSIX standard:
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html
Closes #3800.
|
| |
|
|
|
|
|
|
|
| |
Rename _SMP_Get_processor_count() in _SMP_Get_processor_maximum() to be
in line with the API level rtems_scheduler_get_processor_maximum().
Update #3732.
|
|
|
|
|
|
|
|
|
|
|
| |
Add rtems_scheduler_get_processor_maximum() as a replacement for
rtems_get_processor_count(). The rtems_get_processor_count() is a bit
orphaned. Adopt it by the Scheduler Manager. The count is also
misleading, since the processor set may have gaps and the actual count
of online processors may be less than the value returned by
rtems_get_processor_count().
Update #3732.
|
|
|
|
|
|
|
|
|
|
|
| |
Add rtems_scheduler_get_processor() as a replacement for
rtems_get_current_processor(). The rtems_get_current_processor() is a
bit orphaned. Adopt it by the Scheduler Manager. This is in line with
the glibc sched_getcpu() function.
Deprecate rtems_get_current_processor().
Update #3731.
|
| |
|
|
|
|
|
|
| |
This makes the @file documentation independent of the actual file name.
Update #3707.
|
|
|
|
|
|
|
|
| |
Recursive usage of the same pthread_once_t results now in a deadlock.
Previously, an error of EINVAL was returned. This usage scenario is
invalid according to the POSIX pthread_once() specification.
Close #3334.
|
|
|
|
|
|
|
| |
In case the robust thread dispatch is enabled by the CPU port, then the
interrupt level must not be changed through the task mode.
Update #3000.
|
|
|
|
| |
Update #3000.
|
|
|
|
| |
Update #3000.
|
|
|
|
|
|
|
|
|
|
|
| |
Statically allocate the objects information together with the initial
set of objects either via <rtems/confdefs.h>. Provide default object
informations with zero objects via librtemscpu.a. This greatly
simplifies the workspace size estimate. RTEMS applications which do not
use the unlimited objects option are easier to debug since all objects
reside now in statically allocated objects of the right types.
Close #3621.
|
|
|
|
|
|
|
| |
Use Objects_Information::objects_per_block to provide this information.
Add and use _Objects_Is_auto_extend().
Update #3621.
|
|
|
|
|
|
|
| |
This information is already present in Objects_Information::maximum_id.
Add and use _Objects_Get_maximum_index().
Update #3621.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the maximum ID for the ID to object translation. Using the maximum
ID gets rid of an additional load from the object information in
_Objects_Get(). In addition, object lookups fail for every ID in case
the object information is cleared to zero. This makes it a bit more
robust during system startup (see new tests in spconfig02).
The local table no longer needs a NULL pointer entry at array index
zero. Adjust all the object iteration loops accordingly.
Remove Objects_Information::minimum_id since it contains only redundant
information. Add _Objects_Get_minimum_id() to get the minimum ID.
Update #3621.
|
|
|
|
|
|
| |
Use Objects_Information::name_length to store this information.
Update #3621.
|
|
|
|
| |
Update #3636.
|
|
|
|
|
|
|
|
|
|
| |
The sbintime_t is a non-POSIX type and not visible if strict standard
options are selected.
Move implementation details from <rtems/score/timestamp.h> to
<rtems/score/timestampimpl.h>.
Update #3598.
|
|
|
|
| |
Close #3637.
|
| |
|
|
|
|
|
|
| |
Remove casts and superfluous inline functions.
Update #3585.
|
|
|
|
| |
Update #3598.
|
|
|
|
|
|
| |
Use a real function for rtems_clock_get_uptime_seconds().
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
|
|
|
| |
Use rtems_mode directly. This is in line with rtems_attribute and
rtems_option.
Update #3598.
|
|
|
|
| |
Update #2514.
|
|
|
|
| |
Update #2514.
|
|
|
|
| |
Update #2514.
|
|
|
|
| |
Update #2514.
|
|
|
|
| |
Update #2514.
|