summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/include/rtems/rtems/messageimpl.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add Status_Control for all APIsSebastian Huber2016-05-261-14/+0
| | | | | | | | | | | Unify the status codes of the Classic and POSIX API to use the new enum Status_Control. This eliminates the Thread_Control::Wait::timeout_code field and the timeout parameter of _Thread_queue_Enqueue_critical() and _MPCI_Send_request_packet(). It gets rid of the status code translation tables and instead uses simple bit operations to get the status for a particular API. This enables translation of status code constants at compile time. Add _Thread_Wait_get_status() to avoid direct access of thread internal data structures.
* score: Move thread queue MP callout to contextSebastian Huber2016-05-251-4/+17
| | | | | | | | Drop the multiprocessing (MP) dependent callout parameter from the thread queue extract, dequeue, flush and unblock methods. Merge this parameter with the lock context into new structure Thread_queue_Context. This helps to gets rid of the conditionally compiled method call helpers.
* Replace *_Get_interrupt_disable() with *_Get()Sebastian Huber2016-05-201-2/+1
| | | | | Uniformly use *_Get() to get an object by identifier with a lock context.
* score: Rename _Objects_Get_local()Sebastian Huber2016-05-201-1/+1
| | | | | | Rename _Objects_Get_local() into _Objects_Get(). Confusions with the previous _Objects_Get() function are avoided since the Objects_Locations parameter is gone.
* rtems: _Message_queue_Get_interrupt_disable()Sebastian Huber2016-05-201-5/+3
| | | | | | Use _Objects_Get_local() for _Message_queue_Get_interrupt_disable() to get rid of the location parameter. Move remote object handling to message queue MPCI support.
* rtems: Avoid Giant lock for message queuesSebastian Huber2016-05-021-21/+0
| | | | Update #2555.
* Optional Classic Message Queue initializationSebastian Huber2016-02-031-18/+1
| | | | Update #2408.
* score: Fine grained locking for message queuesSebastian Huber2015-05-191-0/+15
| | | | | | | | | | | Aggregate several critical sections into a bigger one. Sending and receiving messages is now protected by an ISR lock. Thread dispatching is only disabled in case a blocking operation is necessary. The message copy procedure is done inside the critical section (interrupts disabled). Thus this change may have a negative impact on the interrupt latency in case very large messages are transferred. Update #2273.
* score: Add Thread_queue_Control::LockSebastian Huber2015-05-191-0/+1
| | | | | | | | | | | Move the complete thread queue enqueue procedure into _Thread_queue_Enqueue_critical(). It is possible to use the thread queue lock to protect state of the object embedding the thread queue. This enables per object fine grained locking in the future. Delete _Thread_queue_Enter_critical_section(). Update #2273.
* Delete unused *_Is_null() functionsSebastian Huber2014-07-261-14/+0
|
* score: PR2152: Use allocator mutex for objectsSebastian Huber2014-03-311-10/+6
| | | | | Use allocator mutex for objects allocate/free. This prevents that the thread dispatch latency depends on the workspace/heap fragmentation.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* score: Create object implementation headerSebastian Huber2013-07-261-0/+1
| | | | | | Move implementation specific parts of object.h and object.inl into new header file objectimpl.h. The object.h contains now only the application visible API.
* rtems: Create message queue implementation headerSebastian Huber2013-07-221-0/+175
Move implementation specific parts of message.h and message.inl into new header file messageimpl.h. The message.h contains now only the application visible API.