RTEMS  5.1
Macros | Functions | Variables
mpci.c File Reference

Multiprocessing Communications Interface (MPCI) Handler. More...

#include <rtems/score/mpciimpl.h>
#include <rtems/score/coresemimpl.h>
#include <rtems/score/interr.h>
#include <rtems/score/objectmp.h>
#include <rtems/score/stackimpl.h>
#include <rtems/score/sysstate.h>
#include <rtems/score/schedulerimpl.h>
#include <rtems/score/threadimpl.h>
#include <rtems/score/threadqimpl.h>
#include <rtems/sysinit.h>
#include <string.h>

Macros

#define MPCI_SEMAPHORE_TQ_OPERATIONS   &_Thread_queue_Operations_FIFO
 

Functions

 RTEMS_STATIC_ASSERT (sizeof(MPCI_Internal_packet)<=MP_PACKET_MINIMUM_PACKET_SIZE, MPCI_Internal_packet)
 
void _MPCI_Register_packet_processor (MP_packet_Classes the_class, MPCI_Packet_processor the_packet_processor)
 Registers the MPCI packet processor for the designated object class. More...
 
MP_packet_Prefix_MPCI_Get_packet (void)
 Obtains a packet by invoking the user provided MPCI get packet callout. More...
 
void _MPCI_Return_packet (MP_packet_Prefix *the_packet)
 Deallocates a packet. More...
 
void _MPCI_Send_process_packet (uint32_t destination, MP_packet_Prefix *the_packet)
 Sends a process packet. More...
 
Status_Control _MPCI_Send_request_packet (uint32_t destination, MP_packet_Prefix *the_packet, States_Control extra_state)
 Sends a request packet. More...
 
void _MPCI_Send_response_packet (uint32_t destination, MP_packet_Prefix *the_packet)
 Sends a response packet. More...
 
MP_packet_Prefix_MPCI_Receive_packet (void)
 Receives a packet. More...
 
Thread_Control_MPCI_Process_response (MP_packet_Prefix *the_packet)
 Passes a packet to the thread. More...
 
void _MPCI_Receive_server (Thread_Entry_numeric_type ignored)
 Receives and processes all packets. More...
 
void _MPCI_Announce (void)
 Announces the availability of a packet. More...
 
void _MPCI_Internal_packets_Send_process_packet (MPCI_Internal_Remote_operations operation)
 Performs a process on another node. More...
 
void _MPCI_Internal_packets_Process_packet (MP_packet_Prefix *the_packet_prefix)
 Performs requested action from another node. More...
 
MPCI_Internal_packet_MPCI_Internal_packets_Get_packet (void)
 Obtains an internal thread. More...
 
 RTEMS_SYSINIT_ITEM (_MPCI_Handler_early_initialization, RTEMS_SYSINIT_MP_EARLY, RTEMS_SYSINIT_ORDER_MIDDLE)
 
 RTEMS_SYSINIT_ITEM (_MPCI_Handler_initialization, RTEMS_SYSINIT_MP, RTEMS_SYSINIT_ORDER_MIDDLE)
 
 RTEMS_SYSINIT_ITEM (_MPCI_Create_server, RTEMS_SYSINIT_MP_SERVER, RTEMS_SYSINIT_ORDER_MIDDLE)
 
 RTEMS_SYSINIT_ITEM (_MPCI_Finalize, RTEMS_SYSINIT_MP_FINALIZE, RTEMS_SYSINIT_ORDER_MIDDLE)
 

Variables

bool _System_state_Is_multiprocessing
 
CORE_semaphore_Control _MPCI_Semaphore
 
Thread_queue_Control _MPCI_Remote_blocked_threads
 
MPCI_Control_MPCI_table
 
Thread_Control_MPCI_Receive_server_tcb
 Pointer to MP thread control block. More...
 
MPCI_Packet_processor _MPCI_Packet_processors [MP_PACKET_CLASSES_LAST+1]
 

Detailed Description

Multiprocessing Communications Interface (MPCI) Handler.

Variable Documentation

◆ _MPCI_Semaphore

CORE_semaphore_Control _MPCI_Semaphore

This is the core semaphore which the MPCI Receive Server blocks on.