| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Make the interrupt lock context the second parameter to avoid register
moves.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mq_open() function returns a descriptor to a POSIX message queue
object identified by a name. This is similar to sem_open(). In
contrast to the POSIX semaphore the POSIX message queues use a separate
object for the descriptor. This extra object is superfluous, since the
object identifier can be used directly for this purpose, just like for
the semaphores.
Update #2702.
Update #2555.
|
|
|
|
| |
Delete unused POSIX_Message_queue_Control::named.
|
|
|
|
| |
Delete unused POSIX_Message_queue_Control::process_shared.
|
|
|
|
|
| |
Make _POSIX_Message_queue_Create_support() static since it is only used
by mq_open().
|
|
|
|
| |
Update #2555.
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
| |
Use _Thread_queue_Flush_critical() to atomically release the barrier.
Update #2555.
|
|
|
|
|
| |
This simplifies the code since the object location is no longer used.
Remove superfluous header includes.
|
|
|
|
|
|
|
| |
Avoid Giant lock for CORE mutex and semaphore flush and delete
operations.
Update #2555.
|
|
|
|
|
| |
Make the id the first parameter since usual callers get the object
identifier as the first parameter themself.
|
|
|
|
|
| |
Make the id the first parameter since usual callers get the object
identifier as the first parameter themself.
|
|
|
|
|
|
|
| |
Delete _POSIX_Mutex_Get(). Use _POSIX_Mutex_Get_interrupt_disable()
instead.
Update #2555.
|
|
|
|
| |
Remove superfluous location parameter.
|
|
|
|
|
|
|
| |
Use proper CORE_semaphore_Status for _CORE_semaphore_Flush() and
_CORE_semaphore_Destroy() operations.
Close #2696.
|
|
|
|
|
|
| |
Apparently killinfo() is not defined by POSIX, glibc or FreeBSD. Rename
killinfo() to _POSIX_signals_Send() to cleary mark it as an internal
function.
|
|
|
|
|
|
|
| |
This functions supports only local objects. Thus, drop the location
parameter which was unused by all callers.
Remove superfluous includes from Classic Region implementation.
|
|
|
|
| |
Update #2555.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The thread queue implementation was heavily reworked to support SMP.
This broke the multiprocessing support of the thread queues. This is
fixed by this patch.
A thread proxy is unblocked due to three reasons
1) timeout,
2) request satisfaction, and
3) extraction.
In case 1) no MPCI message must be sent. This is ensured via the
_Thread_queue_MP_callout_do_nothing() callout set during
_Thread_MP_Allocate_proxy().
In case 2) and 3) an MPCI message must be sent. In case we interrupt
the blocking operation during _Thread_queue_Enqueue_critical(), then
this message must be sent by the blocking thread. For this the new
fields Thread_Proxy_control::thread_queue_callout and
Thread_Proxy_control::thread_queue_id are used.
Delete the individual API MP callout types and use
Thread_queue_MP_callout throughout. This type is only defined in
multiprocessing configurations. Prefix the multiprocessing parameters
with mp_ to ease code review. Multiprocessing specific parameters are
optional due to use of a similar macro pattern. There is no overhead
for non-multiprocessing configurations.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Remove the Thread_queue_Queue::operations field to reduce the size of
this structure. Add a thread queue operations parameter to the
_Thread_queue_First(), _Thread_queue_First_locked(),
_Thread_queue_Enqueue(), _Thread_queue_Dequeue() and
_Thread_queue_Flush() functions. This is a preparation patch to reduce
the size of several synchronization objects.
|
|
|
|
|
|
| |
Use an ISR lock to protect the spinlock state. Remove empty attributes.
Update #2555.
|
|
|
|
|
|
|
|
|
|
| |
Replace _Objects_Name_to_id_string() with _Objects_Get_by_name() since
all users of this function are interested in the object itself and not
the identifier.
Use the object allocator lock to protect the search.
Update #2555.
|
|
|
|
|
|
| |
Yields higher performance on SMP systems.
Close #2625.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Update #2408.
|
| |
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
| |
Update #2408.
|
|
|
|
|
| |
Store the unblock signals to exploit the zero-initialization of the
thread control block.
|
|
|
|
|
| |
This structure is available in Newlib since 2013-11-29 (Git commit
a534dfd26e765047621acd0eda656ded886e7108).
|
|
|
|
| |
Updates #2405.
|
|
|
|
|
|
| |
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>.
|