RTEMS  5.0.0
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/config.h>
#include <rtems/sysinit.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)
 
MP_packet_Prefix_MPCI_Get_packet (void)
 
void _MPCI_Return_packet (MP_packet_Prefix *the_packet)
 Deallocate a packet. More...
 
void _MPCI_Send_process_packet (uint32_t destination, MP_packet_Prefix *the_packet)
 Send a process packet. More...
 
Status_Control _MPCI_Send_request_packet (uint32_t destination, MP_packet_Prefix *the_packet, States_Control extra_state)
 Send a request packet. More...
 
void _MPCI_Send_response_packet (uint32_t destination, MP_packet_Prefix *the_packet)
 Send a response packet. More...
 
MP_packet_Prefix_MPCI_Receive_packet (void)
 Receive a packet. More...
 
Thread_Control_MPCI_Process_response (MP_packet_Prefix *the_packet)
 Pass a packet to the thread. More...
 
void _MPCI_Receive_server (Thread_Entry_numeric_type ignored)
 Receive and process all packets. More...
 
void _MPCI_Announce (void)
 Announce the availability of a packet. More...
 
void _MPCI_Internal_packets_Send_process_packet (MPCI_Internal_Remote_operations operation)
 Perform a process on another node. More...
 
void _MPCI_Internal_packets_Process_packet (MP_packet_Prefix *the_packet_prefix)
 Perform requested action from another node. More...
 
MPCI_Internal_packet_MPCI_Internal_packets_Get_packet (void)
 Obtain 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
 
rtems_multiprocessing_table * _Configuration_MP_table
 
const rtems_multiprocessing_table _Initialization_Default_multiprocessing_table
 
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

◆ _Initialization_Default_multiprocessing_table

const rtems_multiprocessing_table _Initialization_Default_multiprocessing_table
Initial value:
= {
1,
1,
0,
0,
}
#define STACK_MINIMUM_SIZE
Definition: stack.h:43
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77

◆ _MPCI_Semaphore

CORE_semaphore_Control _MPCI_Semaphore

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