RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Macros | Functions | Variables
mpci.c File Reference

This source file contains the definition of _System_state_Is_multiprocessing, _MPCI_Semaphore, _MPCI_Remote_blocked_threads, _MPCI_table, _MPCI_Receive_server_tcb, _MPCI_Packet_processors and the implementation of _MPCI_Register_packet_processor(), _MPCI_Get_packet(), _MPCI_Send_process_packet(), _MPCI_Send_request_packet(), _MPCI_Send_response_packet(), _MPCI_Receive_packet(), _MPCI_Process_response(), _MPCI_Receive_server(), _MPCI_Announce(), _MPCI_Internal_packets_Send_process_packet(), _MPCI_Internal_packets_Process_packet(), _MPCI_Internal_packets_Get_packet(), and the MPCI Handler system initialization. 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.
 
MP_packet_Prefix_MPCI_Get_packet (void)
 Obtains a packet by invoking the user provided MPCI get packet callout.
 
void _MPCI_Return_packet (MP_packet_Prefix *the_packet)
 Deallocates a packet.
 
void _MPCI_Send_process_packet (uint32_t destination, MP_packet_Prefix *the_packet)
 Sends a process packet.
 
Status_Control _MPCI_Send_request_packet (uint32_t destination, MP_packet_Prefix *the_packet, States_Control extra_state)
 Sends a request packet.
 
void _MPCI_Send_response_packet (uint32_t destination, MP_packet_Prefix *the_packet)
 Sends a response packet.
 
MP_packet_Prefix_MPCI_Receive_packet (void)
 Receives a packet.
 
Thread_Control_MPCI_Process_response (MP_packet_Prefix *the_packet)
 Passes a packet to the thread.
 
void _MPCI_Receive_server (Thread_Entry_numeric_type ignored)
 Receives and processes all packets.
 
void _MPCI_Announce (void)
 Announces the availability of a packet.
 
void _MPCI_Internal_packets_Send_process_packet (MPCI_Internal_Remote_operations operation)
 Performs a process on another node.
 
void _MPCI_Internal_packets_Process_packet (MP_packet_Prefix *the_packet_prefix)
 Performs requested action from another node.
 
MPCI_Internal_packet_MPCI_Internal_packets_Get_packet (void)
 Obtains an internal thread.
 
 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.
 
MPCI_Packet_processor _MPCI_Packet_processors [MP_PACKET_CLASSES_LAST+1]
 

Detailed Description

This source file contains the definition of _System_state_Is_multiprocessing, _MPCI_Semaphore, _MPCI_Remote_blocked_threads, _MPCI_table, _MPCI_Receive_server_tcb, _MPCI_Packet_processors and the implementation of _MPCI_Register_packet_processor(), _MPCI_Get_packet(), _MPCI_Send_process_packet(), _MPCI_Send_request_packet(), _MPCI_Send_response_packet(), _MPCI_Receive_packet(), _MPCI_Process_response(), _MPCI_Receive_server(), _MPCI_Announce(), _MPCI_Internal_packets_Send_process_packet(), _MPCI_Internal_packets_Process_packet(), _MPCI_Internal_packets_Get_packet(), and the MPCI Handler system initialization.

Variable Documentation

◆ _MPCI_Semaphore

CORE_semaphore_Control _MPCI_Semaphore

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