| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
| |
This function is not used in the score.
Update #2555.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change _Thread_queue_Flush() into a macro that invokes
_Thread_queue_Do_flush() with the parameter set defined by
RTEMS_MULTIPROCESSING. For multiprocessing configurations add the
object identifier to avoid direct use of the thread wait information.
Use mp_ prefix for multiprocessing related parameters.
Rename Thread_queue_Flush_callout to Thread_queue_MP_callout since this
type will be re-used later for other operations as well.
|
|
|
|
|
|
|
|
|
|
|
| |
This field was only by the monitor in non-multiprocessing
configurations. Add new field Thread_Wait_information::remote_id in
multiprocessing configurations and use it for the remote procedure call
thread queue.
Add _Thread_Wait_get_id() to obtain the object identifier for debug and
system information tools. Ensure the object layout via static asserts.
Add test cases to sptests/spthreadq01.
|
|
|
|
|
|
| |
Use an ISR lock to protect the spinlock state. Remove empty attributes.
Update #2555.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The CPU time used of a thread was previously maintained per-processor
mostly during _Thread_Dispatch(). However, on SMP configurations the
actual processor of a thread is difficult to figure out since thread
dispatching is a highly asynchronous process (e.g. via inter-processor
interrupts). Only the intended processor of a thread is known to the
scheduler easily. Do the CPU usage accounting during thread heir
updates in the context of the scheduler operations. Provide the
function _Thread_Get_CPU_time_used() to get the CPU usage of a thread
using proper locks to get a consistent value.
Close #2627.
|
|
|
|
|
|
| |
This simplifies the handling with local-only objects.
Update #2555.
|
|
|
|
|
|
|
|
|
| |
Use a red-black tree instead of delta chains.
Close #2344.
Update #2554.
Update #2555.
Close #2606.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This avoids potential dead code in _Thread_Handler(). It gets rid of
the dangerous function pointer casts.
Update #2514.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make rtems_initialize_data_structures(),
rtems_initialize_before_drivers() and rtems_initialize_device_drivers()
static. Rename rtems_initialize_start_multitasking() to
rtems_initialize_executive() and call the registered system
initialization handlers in this function. Add system initialization API
available via #include <rtems/sysinit.h>. Update the documentation
accordingly.
This is no functional change, only the method to call the existing
initialization routines changes. Instead of direct function calls a
table of function pointers contained in the new RTEMS system
initialization linker set is used. This table looks like this (the
actual addresses depend on the target).
nm *.exe | grep _Linker | sort
0201a2d0 D _Linker_set__Sysinit_begin
0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize
0201a2d4 D _Linker_set__Sysinit_bsp_start
0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures
0201a2dc D _Linker_set__Sysinit_bsp_libc_init
0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers
0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook
0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers
0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook
0201a2f0 D _Linker_set__Sysinit_end
Add test sptests/spsysinit01.
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Close #2477.
|
| |
|
|
|
|
| |
This function has no internal use case.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This mutex implementation uses a thread priority queue with a simple
priority inheritance mechanism (similar to the object based mutexes).
The storage space must be supplied by the user (16 bytes on 32-bit
targets).
|
|
|
|
|
|
| |
Rename _POSIX_Absolute_timeout_to_ticks() to
_TOD_Absolute_timeout_to_ticks() and move it to the score directory.
Delete empty <rtems/posix/time.h>.
|
| |
|
|
|
|
| |
Replace _API_Mutex_Is_locked() with _API_Mutex_Is_owner().
|
|
|
|
|
|
|
|
| |
Replace timestamp implementation with FreeBSD bintime and timecounters.
New test sptests/sptimecounter02.
Update #2271.
|
|
|
|
|
|
| |
New test sptests/timecounter01.
Update #2271.
|
|
|
|
|
|
|
| |
Use _Thread_Timeout() instead. Use pseudo thread queue for nanosleep()
to deal with signals.
Close #2130.
|
|
|
|
| |
This reduces the code size drastically.
|
| |
|
| |
|
|
|
|
| |
Rename _CORE_semaphore_Seize_isr_disable() to _CORE_semaphore_Seize().
|
|
|
|
|
| |
Check the number of pending messages in _CORE_message_queue_Flush() to
avoid race conditions.
|
|
|
|
|
|
|
|
|
| |
Use thread wait flags for synchronization. The enqueue operation is now
part of the initial critical section. This is the key change and
enables fine grained locking on SMP for objects using a thread queue
like semaphores and message queues.
Update #2273.
|
|
|
|
|
|
|
|
| |
Replace the Thread_Priority_control with more general
Thread_queue_Operations which will be used for generic priority change,
timeout, signal and wait queue operations in the future.
Update #2273.
|
|
|
|
|
|
|
| |
Add a thread wait timeout code. Replace _Event_Timeout() with a general
purpose _Thread_Timeout() watchdog handler.
Update #2273.
|
|
|
|
|
|
|
|
| |
Use mostly the standard watchdog operations. Use a system event for
synchronization. This implementation is simpler and offers better SMP
performance.
Close #2131.
|
|
|
|
|
|
|
| |
Make internal function _Watchdog_Remove_it() static to avoid accidental
usage.
Update #2307.
|
|
|
|
|
| |
This function was identical to _Thread_queue_Timeout(). This makes
_Thread_queue_Enqueue_with_handler() obsolete.
|
|
|
|
|
|
|
| |
The Objects_Control::Lock was a software layer violation. It worked
only for the threads since they are somewhat special.
Update #2273.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The Allocator Mutex should not be locked outside a tested
service call. In an SMP test or heavily multithreaded test,
this is possible since another thread could have the lock
for an extended period of time but this is not the norm
for the tests.
updates 2319.
|
| |
|
| |
|
|
|
|
| |
Now all the main thread queue operations are in one module.
|
|
|
|
|
|
|
|
| |
Move _Thread_queue_Dequeue(). We need all or no thread queue functions
so it makes no sense to have them in separate modules. One module
enables compiler optimizations without link-time optimization. Make
_Thread_blocking_operation_Finalize() static since it is use now only in
one module.
|
|
|
|
|
|
|
| |
Move _Thread_blocking_operation_Cancel() and make static since it is
only used by _Thread_queue_Enqueue_with_handler().
Move _Thread_blocking_operation_Finalize().
|