| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Update #2514.
|
|
|
|
| |
Update #2514.
|
|
|
|
| |
Update #2514.
|
|
|
|
|
|
|
|
|
| |
In standard C pointer operands are not allowed in integer constant
expressions. Avoid a static assertion based on an array typedef since
this could lead to warnings ("variably modified 'x' at file scope" and
"typedef 'x' locally defined but not used");
This implementation requires unique messages.
|
|
|
|
| |
Update #3533.
|
|
|
|
|
|
|
|
|
| |
Add support to temporarily pin a thread to its current processor. This
may be used to access per-processor data structures in critical sections
with enabled thread dispatching, e.g. a pinned thread is allowed to
block.
Update #3508.
|
|
|
|
|
|
| |
Use architecture-specific integer type for an address difference.
Update #3486.
|
|
|
|
|
|
|
|
|
|
| |
Use uintptr_t to specify the length of the partition buffer area instead
of uint32_t. This is in line with rtems_region_create(). On 64-bit
targets, the length may exceed 4GiB. Use size_t for the buffer size,
since on some targets the single object size is less than the overall
address range, e.g. m32c sizeof(uintptr_t) > sizeof(size_t).
Update #3486.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The partition buffer area alignment required by rtems_partition_create()
was too strict since it was checked via _Addresses_Is_aligned() which
uses CPU_ALIGNMENT. The CPU_ALIGNMENT must take long double and vector
data type alignment requirements into account. For the partition
maintenance only pointer alignment is required (Chain_Node, which
consists of two pointers). The user should ensure that its partition
buffer area is suitable for the items it wants to manage. The user
should not be burdened to provide buffers with the maximum architecture
alignment, e.g. why need a 16 byte aligned buffer if you want to manage
items with 4 byte integers only?
Update #3482.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the CPU_SIZEOF_POINTER alignment instead. The internal alignment
requirement is defined by the use of Chain_Node (consisting of two
pointers) to manage the free chain of partitions.
It seems that previously the condition
CPU_PARTITION_ALIGNMENT >= sizeof(Chain_Node)
was true on all CPU ports. Now, we need an additional check.
Update #3482.
|
|
|
|
|
|
| |
Move _Status_Object_name_errors_to_status to a separate file to avoid a
dependency on errno. Dependencies to errno are hard to be removed by
the linker garbage collection.
|
|
|
|
|
|
|
| |
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
|