| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Replace a runtime check with a compile time assertion. This makes the
INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULL obsolete.
Update #4181.
|
| |
|
|
|
|
| |
It is only used by rtems_partition_create().
|
|
|
|
| |
It is only used by rtems_partition_create(). Fix integer types.
|
|
|
|
|
| |
It is only used by rtems_partition_create(). Move code directly into
directive which called the inline function. Add a comment.
|
|
|
|
|
| |
It is only used by rtems_partition_create(). Move code directly into
the directive which called the inline function. Add a comment.
|
|
|
|
|
| |
It is used only by rtems_partition_return_buffer(). Make the PTCB the
first parameter. Rename to _Partition_Is_address_on_buffer_boundary().
|
|
|
|
|
| |
It is used only in one place. Make the PTCB the first parameter.
Rename it to _Partition_Is_address_a_buffer_begin().
|
|
|
|
| |
It was a trivial function call wrapper used only in one place.
|
|
|
|
| |
It was a trivial function call wrapper used only in one place.
|
|
|
|
| |
It is only used by rtems_partition_return_buffer().
|
|
|
|
| |
It is only used by rtems_partition_get_buffer().
|
| |
|
| |
|
|
|
|
| |
Simply compare the values against NULL.
|
| |
|
|
|
|
|
|
| |
Check the name followed by the id check in all create directives.
Compare pointers against NULL. Fix formatting.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Add Message_queue_Control::is_global if RTEMS_MULTIPROCESSING is defined. This
reduces the Message_queue_Control size in standard RTEMS configurations.
Update #4007.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Return a status code and differentiate between error conditions.
Update #4007.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This avoids a dependency to the stack free function in the thread
destruction.
Update #3959.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|