diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-20 14:21:12 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-20 16:16:59 +0200 |
commit | 641b44c225c71af51285f9a1b408a4f4c2844f8b (patch) | |
tree | 0141b2e6d009fc681b3599796874734457ced6dd /cpukit/rtems/include/rtems/rtems | |
parent | rtems: Remove location from _Partition_Get() (diff) | |
download | rtems-641b44c225c71af51285f9a1b408a4f4c2844f8b.tar.bz2 |
rtems: _Message_queue_Get_interrupt_disable()
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.
Diffstat (limited to '')
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/messageimpl.h | 8 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/msgmp.h | 69 |
2 files changed, 60 insertions, 17 deletions
diff --git a/cpukit/rtems/include/rtems/rtems/messageimpl.h b/cpukit/rtems/include/rtems/rtems/messageimpl.h index 46a4d9e754..a40ace31ea 100644 --- a/cpukit/rtems/include/rtems/rtems/messageimpl.h +++ b/cpukit/rtems/include/rtems/rtems/messageimpl.h @@ -104,15 +104,13 @@ RTEMS_INLINE_ROUTINE void _Message_queue_Free ( RTEMS_INLINE_ROUTINE Message_queue_Control * _Message_queue_Get_interrupt_disable( Objects_Id id, - Objects_Locations *location, ISR_lock_Context *lock_context ) { - return (Message_queue_Control *) _Objects_Get_isr_disable( - &_Message_queue_Information, + return (Message_queue_Control *) _Objects_Get_local( id, - location, - lock_context + lock_context, + &_Message_queue_Information ); } diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h index 0dc6bc511b..3dabd8d46b 100644 --- a/cpukit/rtems/include/rtems/rtems/msgmp.h +++ b/cpukit/rtems/include/rtems/rtems/msgmp.h @@ -79,6 +79,11 @@ typedef struct { #define MESSAGE_QUEUE_MP_PACKET_SIZE \ offsetof(Message_queue_MP_Packet, Buffer.buffer) +RTEMS_INLINE_ROUTINE bool _Message_queue_MP_Is_remote( Objects_Id id ) +{ + return _Objects_MP_Is_remote( id, &_Message_queue_Information ); +} + /** * @brief Message_queue_Core_message_queue_mp_support * @@ -107,18 +112,58 @@ void _Message_queue_MP_Send_process_packet ( ); /** - * @brief _Message_queue_MP_Send_request_packet - * - * This routine performs a remote procedure call so that a - * directive operation can be initiated on another node. - */ -rtems_status_code _Message_queue_MP_Send_request_packet ( - Message_queue_MP_Remote_operations operation, - Objects_Id message_queue_id, - const void *buffer, - size_t *size_p, - rtems_option option_set, - rtems_interval timeout + * @brief Issues a remote rtems_message_queue_broadcast() request. + */ +rtems_status_code _Message_queue_MP_Broadcast( + rtems_id id, + const void *buffer, + size_t size, + uint32_t *count +); + +/** + * @brief Issues a remote rtems_message_queue_flush() request. + */ +rtems_status_code _Message_queue_MP_Flush( + rtems_id id, + uint32_t *count +); + +/** + * @brief Issues a remote rtems_message_queue_get_number_pending() request. + */ +rtems_status_code _Message_queue_MP_Get_number_pending( + rtems_id id, + uint32_t *count +); + +/** + * @brief Issues a remote rtems_message_queue_receive() request. + */ +rtems_status_code _Message_queue_MP_Receive( + rtems_id id, + void *buffer, + size_t *size, + rtems_option option_set, + rtems_interval timeout +); + +/** + * @brief Issues a remote rtems_message_queue_send() request. + */ +rtems_status_code _Message_queue_MP_Send( + rtems_id id, + const void *buffer, + size_t size +); + +/** + * @brief Issues a remote rtems_message_queue_urgent() request. + */ +rtems_status_code _Message_queue_MP_Urgent( + rtems_id id, + const void *buffer, + size_t size ); /** |