summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/include/rtems/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-20 14:21:12 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-20 16:16:59 +0200
commit641b44c225c71af51285f9a1b408a4f4c2844f8b (patch)
tree0141b2e6d009fc681b3599796874734457ced6dd /cpukit/rtems/include/rtems/rtems
parentrtems: Remove location from _Partition_Get() (diff)
downloadrtems-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.h8
-rw-r--r--cpukit/rtems/include/rtems/rtems/msgmp.h69
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
);
/**