| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Update #3993.
|
| |
|
|
|
|
|
|
|
| |
Directly use "static inline" which is available in C99 and later. This brings
the RTEMS implementation closer to standard C.
Close #3935.
|
|
|
|
|
| |
Directly include <rtems/score/cpuopts.h> in header files using CPU build
options.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Threads may join the thread termination of another thread using the
pthread_join() or rtems_task_delete() directives. The thread cancel operation
used a special case priority boosting mechanism implemented by
_Thread_Raise_real_priority(). The problem was that this approach
* is not transitive,
* does not account for priority adjustments of the calling task
while waiting for the join,
* does not support clustered scheduling, and
* does not detect deadlocks.
All these problems are fixed by using a priority inheritance thread queue for
the join operation.
Close #4679.
|
| |
|
|
|
|
|
|
|
|
| |
Restrict the affinity set to the set of online processors. Make sure
the affinity set for an interrupt vector contains at least one online
processor.
Update #3269.
|
|
|
|
| |
Updates #3053.
|
|
|
|
| |
Update #4572.
|
|
|
|
|
| |
Move the data structure definitions closer to the directives which use
them.
|
|
|
|
|
| |
If RTEMS_SMP is not defined, then Doxygen adds the comments intended for
conditional the lock member to the next member.
|
|
|
|
|
|
| |
Since the previous Interrupt Manager Extension API moved to the
Interrupt Manager, we can move the interfaces to <rtems/rtems/intr.h> so
that they are available via #include <rtems.h>.
|
|
|
|
|
|
| |
Move all rtems_scheduler_* directives to the new header file
<rtems/rtems/scheduler.h>. Add a Scheduler Manager API and
implementation group.
|
|
|
|
| |
Resolution is the right term for the documented property.
|
|
|
|
|
|
|
|
|
|
| |
Remove the THREAD_WAIT_STATE_READY_AGAIN and simply use the initial value to
indicate that a thread does not wait on something. Rename
THREAD_WAIT_FLAGS_INITIAL to THREAD_WAIT_STATE_READY. This change is necessary
so that _Thread_Continue() can be called for threads which never waited on
something (for example dormant threads).
Update #4546.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Return an error status for the following error condition in
rtems_scheduler_remove_processor():
While an attempt is made to remove a processor from a scheduler, while
the processor is the only processor owned by the scheduler, if a thread
exists which uses the scheduler as a helping scheduler, then the
processor shall not be removed.
The reason is that ask for help requests and withdraw node requests are
processed asynchronously in any order. An ask for help request carried
out on a scheduler without a processor is undefined behaviour.
Update error status description.
Update #4544.
|
| |
|
| |
|
|
|
|
| |
Update #4527.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch set replaces the CPU budget algorithm enumeration with a set of CPU
budget operations which implement a particular CPU budget algorithm. This
helps to hide the CPU budget algorithm implementation details from the general
thread handling. The CPU budget callouts are turned into CPU budget
operations. This slightly reduces the size of the thread control block.
All schedulers used the default scheduler tick implementation. The tick
scheduler operation is removed and the CPU budget operations are directly used
in _Watchdog_Tick() if the executing thread uses a CPU budget algorithm. This
is performance improvement for all threads which do not use a CPU budget
algorithm (default behaviour).
|
|
|
|
|
|
|
|
|
| |
Mention that resetting the processor usage time of tasks has no impact
on the period status and statistics.
Remove no longer relevant RTEMS_NOT_DEFINED error status.
Update #4528.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rate monotonic period statistics were affected by
rtems_cpu_usage_reset(). The logic to detect and work around a CPU
usage reset was broken.
The Thread_Contol::cpu_time_used is changed to contain the processor
time used throughout the entire lifetime of the thread. The new member
Thread_Contol::cpu_time_used_at_last_reset is added to contain the
processor time used at the time of the last reset through
rtems_cpu_usage_reset(). This decouples the resets of the CPU usage and
the rate monotonic period statistics.
Update #4528.
|
|
|
|
| |
Update #3706.
|
|
|
|
|
|
|
| |
Correct the description of the ``count`` parameter of
rtems_message_queue_flush().
Update #4508.
|
| |
|
|
|
|
|
| |
Move the definition of the top-level Classic API implementation group to
an implementation header file.
|
|
|
|
|
|
|
| |
Remove bogus return status from rtems_message_queue_receive(). Clarify
rtems_message_queue_flush().
Update #4508.
|
|
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
Update #4513.
|
|
|
|
| |
Update #4338.
|
|
|
|
|
|
|
|
| |
The rtems_partition_return_buffer() wrongly accepted which were exactly
at the buffer area end. Use the buffer area limit address for the range
checking.
Close #4490.
|
|
|
|
|
|
|
|
| |
Add rtems_interrupt_raise_on(). Document the currently not implemented
rtems_interrupt_clear(). Remove the not implemented and badly named
rtems_interrupt_cause() directive.
Update #3269.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Mention the type of the pointer in the parameter description. Use the
more general term "object" instead of "variable".
Update #3993.
|
|
|
|
| |
Update #4414.
|
|
|
|
|
|
| |
Replace defines with an enum.
Update #4406.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a parameter to _TOD_Validate() to disable the validation of the
ticks member.
There are two reasons for this change. Firstly, in
rtems_task_wake_when() was a double check for time_buffer == NULL (one
in rtems_task_wake_when() and one in _TOD_Validate()). Secondly, the
ticks member is ignored by rtems_task_wake_when(). This was done with a
write of zero to the ticks member and thus a modification of the
user-provided structure. Now the structure is no longer modified.
Using a mask parameter is quite efficient. You just have to load an
immediate value and there are no additional branches in _TOD_Validate().
Close #4406.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Document changed error status.
Update #4401.
|
|
|
|
| |
Document new error status.
|
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
|
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
|
|
|
|
|
|
|
|
| |
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
|
| |
|
| |
|