![]() |
RTEMS
5.1
|
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] |
Multiprocessing Communications Interface (MPCI) Handler.
CORE_semaphore_Control _MPCI_Semaphore |
This is the core semaphore which the MPCI Receive Server blocks on.