RTEMS CPU Kit with SuperCore
4.11.3
|
Message Manager MP Support. More...
#include <rtems/score/mpciimpl.h>
Go to the source code of this file.
Data Structures | |
struct | Message_queue_MP_Packet |
The following data structure defines the packet used to perform remote message queue operations. More... | |
Macros | |
#define | MESSAGE_QUEUE_MP_PACKET_SIZE offsetof(Message_queue_MP_Packet, Buffer.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 } |
The following enumerated type defines the list of remote message queue operations. | |
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_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) |
_Message_queue_MP_Send_request_packet More... | |
void | _Message_queue_MP_Send_response_packet (Message_queue_MP_Remote_operations operation, Objects_Id message_queue_id, Thread_Control *the_thread) |
_Message_queue_MP_Send_response_packet More... | |
void | _Message_queue_MP_Process_packet (rtems_packet_prefix *the_packet_prefix) |
_Message_queue_MP_Process_packet More... | |
void | _Message_queue_MP_Send_object_was_deleted (Thread_Control *the_proxy) |
_Message_queue_MP_Send_object_was_deleted More... | |
void | _Message_queue_MP_Send_extract_proxy (void *argument) |
_Message_queue_MP_Send_extract_proxy More... | |
Message_queue_MP_Packet * | _Message_queue_MP_Get_packet (void) |
_Message_queue_MP_Get_packet More... | |
Message Manager MP Support.
This include file contains all the constants and structures associated with the Multiprocessing Support in the Message Manager.
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
References _Message_queue_MP_Send_response_packet(), and RTEMS_SUCCESSFUL.
Message_queue_MP_Packet* _Message_queue_MP_Get_packet | ( | void | ) |
_Message_queue_MP_Get_packet
This function is used to obtain a message queue mp packet.
References _MPCI_Get_packet().
void _Message_queue_MP_Process_packet | ( | rtems_packet_prefix * | the_packet_prefix | ) |
_Message_queue_MP_Process_packet
This routine performs the actions specific to this package for the request from another node.
void _Message_queue_MP_Send_extract_proxy | ( | void * | argument | ) |
_Message_queue_MP_Send_extract_proxy
This routine is invoked when a task is deleted and it has a proxy which must be removed from a thread queue and the remote node must be informed of this.
References _Message_queue_MP_Send_process_packet().
void _Message_queue_MP_Send_object_was_deleted | ( | Thread_Control * | the_proxy | ) |
_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.
References _Message_queue_MP_Send_response_packet(), and RTEMS_OBJECT_WAS_DELETED.
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.
Referenced by _Message_queue_MP_Send_extract_proxy().
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 | ||
) |
_Message_queue_MP_Send_request_packet
This routine performs a remote procedure call so that a directive operation can be initiated on another node.
void _Message_queue_MP_Send_response_packet | ( | Message_queue_MP_Remote_operations | operation, |
Objects_Id | message_queue_id, | ||
Thread_Control * | the_thread | ||
) |
_Message_queue_MP_Send_response_packet
This routine performs a remote procedure call so that a directive can be performed on another node.
Referenced by _Message_queue_Core_message_queue_mp_support(), and _Message_queue_MP_Send_object_was_deleted().