| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Use _Thread_Dispatch_direct() for operations that block the executing
thread. This ensures that we get a fatal error
(INTERNAL_ERROR_BAD_THREAD_DISPATCH_DISABLE_LEVEL) if we try to block in
an invalid context, e.g. during system start or an interrupt handler.
|
| |
|
|
|
|
|
|
|
|
| |
Rename PER_CPU_WATCHDOG_MONOTONIC to PER_CPU_WATCHDOG_TICKS. Add new
PER_CPU_WATCHDOG_MONOTONIC which is based on the system uptime (measured
by timecounter).
Close #3264.
|
|
|
|
|
|
| |
Rename _Watchdog_Realtime_from_*() to _Watchdog_Ticks_from_*().
Update #3264.
|
|
|
|
|
|
|
|
|
|
|
| |
A rtems_configuration_is_smp_enabled() inside a !defined( RTEMS_SMP)
block makes no sense.
Remove !defined( RTEMS_SMP ) conditions.
Test tm04 works now again.
Update #3000.
|
|
|
|
|
|
|
| |
Also use single conditional expressions to simplify error checking.
Combined, this all resulted in a block of SMP enabled error checking.
Updates #3000.
|
|
|
|
|
|
|
|
|
|
| |
Use a self-contained recursive mutex for API_Mutex_Control. The API
mutexes are protected against asynchronous thread cancellation.
Add dedicated mutexes for libatomic and TOD.
Close #2629.
Close #2630.
|
|
|
|
| |
Update #3243.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on correlation with the enum for object lookup errors in
cpukit/score/include/rtems/score/objectimpl.h:
typedef enum {
OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL,
OBJECTS_INVALID_NAME,
OBJECTS_INVALID_ADDRESS,
OBJECTS_INVALID_ID,
OBJECTS_INVALID_NODE
} Objects_Name_or_id_lookup_errors;
update the comments regarding the object lookup error to status map to
match.
Signed-off-by: Martin Erik Werner <martin.werner@aacmicrotec.com>
|
|
|
|
|
|
|
| |
The watchdog routines invoked by the timer server may use mutexes for
synchronization. Ensure that the resource count of the timer server is
zero after each watchdog routine invocation. This helps to detect
broken watchdog routines.
|
|
|
|
|
|
|
| |
Add macro implementation for rtems_clock_get_ticks_per_second() for
C/C++ to avoid the function call overhead. A
rtems_clock_get_ticks_per_second() is still provided for language
bindings (e.g. Ada).
|
|
|
|
|
| |
Update #3117.
Update #3182.
|
|
|
|
|
|
|
|
|
|
| |
Rename _Watchdog_Ticks_from_*() to _Watchdog_Realtime_from_*().
This highlights that these routines are used for the CLOCK_REALTIME
watchdogs (in contrast to CLOCK_MONOTONIC).
Update #3117.
Update #3182.
|
|
|
|
|
|
|
|
| |
This value is frequently used. Avoid the function call overhead and the
integer division at run-time.
Update #3117.
Update #3182.
|
|
|
|
|
|
|
|
| |
Replace _Thread_Timer_insert_monotonic() with
_Thread_Add_timeout_ticks().
Update #3117.
Update #3182.
|
|
|
|
|
|
|
|
| |
Rename _Watchdog_Per_CPU_insert_monotonic() in
_Watchdog_Per_CPU_insert_ticks().
Update #3117.
Update #3182.
|
|
|
|
|
|
|
|
|
|
|
| |
Rename PER_CPU_WATCHDOG_RELATIVE in PER_CPU_WATCHDOG_MONOTONIC to
highlight the corresponding POSIX CLOCK_MONOTONIC.
Rename PER_CPU_WATCHDOG_ABSOLUTE in PER_CPU_WATCHDOG_REALTIME to
highlight the corresponding POSIX CLOCK_REALTIME.
Update #3117.
Update #3182.
|
|
|
|
|
|
| |
Use Processor_mask instead.
Update #2514.
|
| |
|
|
|
|
|
|
|
| |
Use the timestamps only for uptime based values. Use struct timespec
for the absolute time values (TOD).
Update #2740.
|
|
|
|
| |
Update #3111.
|
|
|
|
|
|
|
|
| |
POSIX mutexes are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3112.
|
|
|
|
|
|
|
|
| |
POSIX condition variables are now available in all configurations and no
longer depend on --enable-posix.
Update #2514.
Update #3113.
|
|
|
|
|
|
|
|
| |
POSIX rwlocks are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3115.
|
|
|
|
|
|
|
|
| |
POSIX barriers are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3114.
|
|
|
|
| |
Update #3070.
|
|
|
|
| |
Update #3069.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
| |
Account for the thread processor affinity and make sure that it is
possible to allocate a processor to each thread dedicated to a scheduler
instance.
Update #3059.
|
|
|
|
|
|
|
| |
Replace the simple processor count with the processor set owned by the
scheduler instance.
Update #3059.
|
|
|
|
| |
architectures
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the special thread queue name _Thread_queue_Object_name to mark
thread queues embedded in an object with identifier. Using the special
thread state STATES_THREAD_QUEUE_WITH_IDENTIFIER is not reliable for
this purpose since the thread wait information and thread state are
protected by different SMP locks in separate critical sections. Remove
STATES_THREAD_QUEUE_WITH_IDENTIFIER.
Add and use _Thread_queue_Object_initialize().
Update #2858.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prepare a precondition to prevent the potential integer overflow.
Remove one redundant parameter in _Rate_monotonic_Renew_deadline().
sptests/sprmsched02: Create
A test case for checking the overflow condition of postponed_jobs
in rtems_rate_monotonic_period_status.
Update #2885.
|
|
|
|
|
|
|
|
|
|
|
| |
Add a variable named "count" in rtems_rate_monotonic_period_status
structure. Revise rtems_rate_monotonic_get_status() for the postponed
job count.
sptests/sp69: Add in the verification of the postponed job count for
rtems_rate_monotonic_get_status().
Update #2795.
|
|
|
|
|
|
| |
Use proper locking in SMP configurations.
Update #2795.
|
|
|
|
|
|
| |
Use proper locking in SMP configurations.
Update #2795.
|
|
|
|
|
|
|
| |
Make _Rate_monotonic_Renew_deadline() static and use proper locking in SMP
configurations.
Update #2795.
|
|
|
|
| |
closes #2795
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Three additional functions:
rtems_rate_monotonic_postponed_job_count,
_Rate_monotonic_Renew_deadline, and _Rate_monotonic_Release_postponed_job.
Four refined functions:
_Rate_monotonic_Activate, _Rate_monotonic_Block_while_expired,
rtems_rate_monotonic_period, _Rate_monotonic_Timeout.
Rate_monotonic_Control contains one counter for counting the postponed jobs
and one for recording the recent deadline.
Update #2795.
|
|
|
|
|
|
|
|
|
| |
Add POSIX shared memory manager (Shm). Includes a hook-based
approach for the backing memory storage that defaults to the
Workspace, and a test is provided using the heap. A test is
also provided for the basic use of mmap'ing a shared memory
object. This test currently fails at the mmap stage due to
no support for mmap.
|
| |
|
|
|
|
|
|
|
|
| |
Replace STATES_DELAYING with STATES_WAITING_FOR_TIME.
There is no need for separate timeout thread states. The
Thread_Control::Timer::header and Watchdog_Control::cpu members can be
used to figure out the kind of timeout.
|
| |
|
| |
|
|
|
|
| |
Update #2825.
|
|
|
|
|
|
|
|
|
| |
The fatal is internal indicator is redundant since the fatal source and
error code uniquely identify a fatal error. Keep the fatal user
extension is internal parameter for backward compatibility and set it to
false always.
Update #2825.
|
|
|
|
| |
Update #2797.
|
|
|
|
|
|
| |
Fix thread dispatch profiling of rtems_scheduler_add_processor().
Update #2797.
|
|
|
|
|
|
|
|
| |
Initialize thread queue context early preferably outside the critical
section.
Remove implicit _Thread_queue_Context_initialize() from
_Thread_Wait_acquire().
|