RTEMS 6.1-rc1
Files | Data Structures | Macros | Enumerations | Functions
Message Manager Multiprocessing (MP) Support

This group contains the implementation to support the Message Manager in multiprocessing (MP) configurations. More...

Files

file  msgmp.h
 This header file provides the implementation interfaces of the Message Manager Multiprocessing (MP) Support.
 
file  msgmp.c
 This source file contains the implementation to support the Message Manager in multiprocessing (MP) configurations.
 

Data Structures

struct  Message_queue_MP_Packet
 

Macros

#define MESSAGE_QUEUE_MP_PACKET_SIZE    offsetof(Message_queue_MP_Packet, buffer)
 

Enumerations

enum  Message_queue_MP_Remote_operations {
  MESSAGE_QUEUE_MP_ANNOUNCE_CREATE = 0 , MESSAGE_QUEUE_MP_ANNOUNCE_DELETE = 1 , MESSAGE_QUEUE_MP_EXTRACT_PROXY = 2 , MESSAGE_QUEUE_MP_RECEIVE_REQUEST = 3 ,
  MESSAGE_QUEUE_MP_RECEIVE_RESPONSE = 4 , MESSAGE_QUEUE_MP_SEND_REQUEST = 5 , MESSAGE_QUEUE_MP_SEND_RESPONSE = 6 , MESSAGE_QUEUE_MP_URGENT_REQUEST = 7 ,
  MESSAGE_QUEUE_MP_URGENT_RESPONSE = 8 , MESSAGE_QUEUE_MP_BROADCAST_REQUEST = 9 , MESSAGE_QUEUE_MP_BROADCAST_RESPONSE = 10 , MESSAGE_QUEUE_MP_FLUSH_REQUEST = 11 ,
  MESSAGE_QUEUE_MP_FLUSH_RESPONSE = 12 , MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST = 13 , MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE = 14
}
 

Functions

void _Message_queue_Core_message_queue_mp_support (Thread_Control *the_thread, rtems_id id)
 Message_queue_Core_message_queue_mp_support. More...
 
void _Message_queue_MP_Send_process_packet (Message_queue_MP_Remote_operations operation, Objects_Id message_queue_id, rtems_name name, Objects_Id proxy_id)
 _Message_queue_MP_Send_process_packet More...
 
rtems_status_code _Message_queue_MP_Broadcast (rtems_id id, const void *buffer, size_t size, uint32_t *count)
 Issues a remote rtems_message_queue_broadcast() request.
 
rtems_status_code _Message_queue_MP_Flush (rtems_id id, uint32_t *count)
 Issues a remote rtems_message_queue_flush() request.
 
rtems_status_code _Message_queue_MP_Get_number_pending (rtems_id id, uint32_t *count)
 Issues a remote rtems_message_queue_get_number_pending() request.
 
rtems_status_code _Message_queue_MP_Receive (rtems_id id, void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout)
 Issues a remote rtems_message_queue_receive() request.
 
rtems_status_code _Message_queue_MP_Send (rtems_id id, const void *buffer, size_t size)
 Issues a remote rtems_message_queue_send() request.
 
rtems_status_code _Message_queue_MP_Urgent (rtems_id id, const void *buffer, size_t size)
 Issues a remote rtems_message_queue_urgent() request.
 
void _Message_queue_MP_Send_object_was_deleted (Thread_Control *the_proxy, Objects_Id mp_id)
 _Message_queue_MP_Send_object_was_deleted More...
 

Detailed Description

This group contains the implementation to support the Message Manager in multiprocessing (MP) configurations.

Enumeration Type Documentation

◆ Message_queue_MP_Remote_operations

The following enumerated type defines the list of remote message queue operations.

Function Documentation

◆ _Message_queue_Core_message_queue_mp_support()

void _Message_queue_Core_message_queue_mp_support ( Thread_Control the_thread,
rtems_id  id 
)

Message_queue_Core_message_queue_mp_support.

Input parameters: the_thread - the remote thread the message was submitted to id - id of the message queue

Output parameters: NONE

◆ _Message_queue_MP_Send_object_was_deleted()

void _Message_queue_MP_Send_object_was_deleted ( Thread_Control the_proxy,
Objects_Id  mp_id 
)

_Message_queue_MP_Send_object_was_deleted

This routine is invoked indirectly by the thread queue when a proxy has been removed from the thread queue and the remote node must be informed of this.

◆ _Message_queue_MP_Send_process_packet()

void _Message_queue_MP_Send_process_packet ( Message_queue_MP_Remote_operations  operation,
Objects_Id  message_queue_id,
rtems_name  name,
Objects_Id  proxy_id 
)

_Message_queue_MP_Send_process_packet

This routine performs a remote procedure call so that a process operation can be performed on another node.