RTEMS 6.3
Loading...
Searching...
No Matches
Message Manager Multiprocessing (MP) Support

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

Files

file  cpukit/include/rtems/rtems/msgmp.h
 This header file provides the implementation interfaces of the Message Manager Multiprocessing (MP) Support.
file  cpukit/rtems/src/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.
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
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

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.